Bump actions/upload-artifact #295
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Test and publish | |
on: | |
push: | |
branches: | |
- "**" | |
paths-ignore: | |
- "**/*.md" | |
pull_request: | |
branches: | |
- "**" | |
release: | |
types: | |
- published | |
jobs: | |
build: | |
runs-on: ubuntu-latest | |
name: Build | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Setup node | |
uses: actions/setup-node@v4 | |
with: | |
node-version: '20' | |
- name: node_modules cache | |
uses: actions/cache@v4 | |
id: node_modules_cache | |
with: | |
path: ./node_modules | |
key: ${{ runner.os }}-20-node_modules-${{ hashFiles('yarn.lock') }} | |
restore-keys: | | |
${{ runner.os }}-20-node_modules- | |
- name: Yarn offline cache | |
if: steps.node_modules_cache.outputs.cache-hit != 'true' | |
uses: actions/cache@v4 | |
with: | |
path: ~/.npm-packages-offline-cache | |
key: yarn-offline-${{ hashFiles('**/yarn.lock') }} | |
restore-keys: yarn-offline | |
- name: Install deps | |
if: steps.node_modules_cache.outputs.cache-hit != 'true' | |
run: | | |
yarn config set yarn-offline-mirror ~/.npm-packages-offline-cache | |
yarn config set yarn-offline-mirror-pruning true | |
yarn install --frozen-lockfile --prefer-offline | |
- name: Build | |
id: yarn-pack-dir | |
run: ./build.sh | |
- name: 'Upload Artifact' | |
uses: actions/upload-artifact@v4 | |
with: | |
name: rxfire-${{ github.run_id }} | |
path: dist | |
retention-days: 1 | |
test: | |
runs-on: ubuntu-latest | |
needs: build | |
strategy: | |
matrix: | |
node: ["20"] | |
firebase: ["9", "10"] | |
rxjs: ["6", "7"] | |
fail-fast: false | |
name: Test firebase@${{ matrix.firebase }} rxjs@${{ matrix.rxjs }} on Node.js ${{ matrix.node }} | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Setup node | |
uses: actions/setup-node@v4 | |
with: | |
node-version: ${{ matrix.node }} | |
check-latest: true | |
- name: node_modules cache | |
id: node_modules_cache | |
uses: actions/cache@v4 | |
with: | |
path: ./node_modules | |
key: ${{ runner.os }}-${{ matrix.node }}-${{ matrix.firebase }}-${{ matrix.rxjs }}-node_modules-${{ hashFiles('yarn.lock') }} | |
restore-keys: | | |
${{ runner.os }}-${{ matrix.node }}-${{ matrix.firebase }}-${{ matrix.rxjs }}-node_modules- | |
${{ runner.os }}-${{ matrix.node }}-node_modules- | |
- name: test/functions node_modules cache | |
id: functions_node_modules_cache | |
uses: actions/cache@v4 | |
with: | |
path: ./test/functions/node_modules | |
key: ${{ runner.os }}-${{ matrix.node }}-functions_node_modules-${{ hashFiles('test/functions/yarn.lock') }} | |
restore-keys: | | |
${{ runner.os }}-${{ matrix.node }}-functions_node_modules- | |
- name: Yarn offline cache | |
if: steps.node_modules_cache.outputs.cache-hit != 'true' || steps.functions_node_modules_cache.outputs.cache-hit != 'true' | |
uses: actions/cache@v4 | |
with: | |
path: ~/.npm-packages-offline-cache | |
key: yarn-offline-${{ hashFiles('**/yarn.lock') }} | |
restore-keys: yarn-offline | |
- name: Install deps | |
if: steps.node_modules_cache.outputs.cache-hit != 'true' | |
run: | | |
yarn config set yarn-offline-mirror ~/.npm-packages-offline-cache | |
yarn install --frozen-lockfile --prefer-offline | |
yarn add --dev firebase@${{ matrix.firebase }} rxjs@${{ matrix.rxjs }} --prefer-offline | |
- name: Install test/functions deps | |
if: steps.functions_node_modules_cache.outputs.cache-hit != 'true' | |
run: | | |
yarn config set yarn-offline-mirror ~/.npm-packages-offline-cache | |
cd test/functions | |
yarn install --frozen-lockfile --prefer-offline | |
- name: Firebase emulator cache | |
uses: actions/cache@v4 | |
with: | |
path: ~/.cache/firebase/emulators | |
key: firebase_emulators | |
- name: 'Download Artifacts' | |
uses: actions/download-artifact@v4 | |
- name: Run tests | |
run: | | |
mv rxfire-${{ github.run_id }} dist | |
yarn test | |
lint: | |
runs-on: ubuntu-latest | |
strategy: | |
matrix: | |
node: ["20"] | |
firebase: ["9", "10"] | |
rxjs: ["7"] | |
fail-fast: false | |
name: Lint | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Setup node | |
uses: actions/setup-node@v4 | |
with: | |
node-version: ${{ matrix.node }} | |
check-latest: true | |
- name: node_modules cache | |
id: node_modules_cache | |
uses: actions/cache@v4 | |
with: | |
path: ./node_modules | |
key: ${{ runner.os }}-${{ matrix.node }}-${{ matrix.firebase }}-${{ matrix.rxjs }}-node_modules-${{ hashFiles('yarn.lock') }} | |
restore-keys: | | |
${{ runner.os }}-${{ matrix.node }}-${{ matrix.firebase }}-${{ matrix.rxjs }}-node_modules- | |
${{ runner.os }}-${{ matrix.node }}-node_modules- | |
- name: Yarn offline cache | |
if: steps.node_modules_cache.outputs.cache-hit != 'true' || steps.functions_node_modules_cache.outputs.cache-hit != 'true' | |
uses: actions/cache@v4 | |
with: | |
path: ~/.npm-packages-offline-cache | |
key: yarn-offline-${{ hashFiles('**/yarn.lock') }} | |
restore-keys: yarn-offline | |
- name: Install deps | |
if: steps.node_modules_cache.outputs.cache-hit != 'true' | |
run: | | |
yarn config set yarn-offline-mirror ~/.npm-packages-offline-cache | |
yarn install --frozen-lockfile --prefer-offline | |
yarn add --dev firebase@${{ matrix.firebase }} rxjs@${{ matrix.rxjs }} --prefer-offline | |
- name: Run lint | |
run: | | |
yarn lint | |
publish: | |
runs-on: ubuntu-latest | |
name: Publish (NPM) | |
needs: ['build', 'test'] | |
if: ${{ github.ref == 'refs/heads/main' || github.event_name == 'release' }} | |
steps: | |
- name: Setup node | |
uses: actions/setup-node@v4 | |
with: | |
node-version: '20' | |
registry-url: 'https://wombat-dressing-room.appspot.com' | |
- name: 'Download Artifacts' | |
uses: actions/download-artifact@v4 | |
- name: Publish | |
run: | | |
cd ./rxfire-${{ github.run_id }} | |
chmod +x publish.sh | |
./publish.sh | |
env: | |
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }} |