⬆️ chore(deps-dev): bump @swc/cli from 0.4.0 to 0.5.0 #2267
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: Continuous Integration | |
on: | |
pull_request: | |
push: | |
branches: | |
- main | |
permissions: | |
contents: read | |
packages: write | |
deployments: write | |
id-token: write | |
env: | |
FORCE_COLOR: 1 | |
jobs: | |
unit-test-matrix: | |
name: Unit Test | |
runs-on: ubuntu-latest | |
strategy: | |
fail-fast: false | |
matrix: | |
shard: [1, 2] | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Setup pnpm | |
uses: pnpm/action-setup@v4 | |
- name: Setup Node.js | |
uses: actions/setup-node@v4 | |
with: | |
node-version: lts/* | |
cache: pnpm | |
cache-dependency-path: pnpm-lock.yaml | |
- name: Install Dependencies | |
run: pnpm install --frozen-lockfile | |
- name: Run Unit Tests | |
run: JEST_JUNIT_OUTPUT_NAME=unit-${{ matrix.shard }}.xml pnpm run test:ci --shard ${{ matrix.shard }}/2 | |
- name: Upload Test Results to Codecov | |
if: ${{ !cancelled() }} | |
uses: codecov/test-results-action@v1 | |
with: | |
file: unit-${{ matrix.shard }}.xml | |
token: ${{ secrets.CODECOV_TOKEN }} | |
- name: Upload Coverage | |
uses: codecov/codecov-action@v4 | |
if: ${{ !cancelled()}} | |
with: | |
token: ${{ secrets.CODECOV_TOKEN }} | |
directory: coverage/unit | |
flags: unittests,node | |
- name: Upload Test Results | |
uses: actions/upload-artifact@v4 | |
if: ${{ !cancelled() }} | |
with: | |
name: unit-${{ matrix.shard }} | |
path: unit-${{ matrix.shard }}.xml | |
unit-test: | |
# Summary of all test shards | |
# Inspired by https://github.com/orgs/community/discussions/26822#discussioncomment-5122101 | |
needs: [unit-test-matrix] | |
name: Unit Test | |
runs-on: ubuntu-latest | |
if: always() | |
steps: | |
- name: Download Test Results | |
uses: actions/download-artifact@v4 | |
with: | |
pattern: unit-* | |
path: test/ | |
merge-multiple: true | |
- name: Action Summary | |
uses: test-summary/action@v2 | |
with: | |
paths: | | |
test/unit-*.xml | |
- name: Check unit test results | |
# see https://docs.github.com/en/actions/reference/context-and-expression-syntax-for-github-actions#needs-context | |
# see https://stackoverflow.com/a/67532120/4907315 | |
if: >- | |
${{ | |
contains(needs.*.result, 'failure') | |
|| contains(needs.*.result, 'cancelled') | |
|| contains(needs.*.result, 'skipped') | |
}} | |
run: exit 1 | |
lint: | |
name: Lint | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Setup pnpm | |
uses: pnpm/action-setup@v4 | |
- name: Setup Node.js | |
uses: actions/setup-node@v4 | |
with: | |
node-version: lts/* | |
cache: pnpm | |
cache-dependency-path: pnpm-lock.yaml | |
- name: Install Dependencies | |
run: pnpm install --frozen-lockfile | |
- name: Run Lint | |
run: pnpm lint:ci | |
- name: Action Summary | |
if: failure() | |
run: | | |
SUMMARY=$'❌ Lint failed\nPlease run the following command locally and commit the changes\n```zsh\npnpm run lint:apply\n```' | |
echo "$SUMMARY" >> $GITHUB_STEP_SUMMARY | |
typescript: | |
name: Typescript | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Setup pnpm | |
uses: pnpm/action-setup@v4 | |
- name: Setup Node.js | |
uses: actions/setup-node@v4 | |
with: | |
node-version: lts/* | |
cache: pnpm | |
cache-dependency-path: pnpm-lock.yaml | |
- name: Install Dependencies | |
run: pnpm install --frozen-lockfile | |
- name: Run tsc | |
run: pnpm tsc:ci | |
build: | |
name: Build | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Setup pnpm | |
uses: pnpm/action-setup@v4 | |
- name: Setup Node.js | |
uses: actions/setup-node@v4 | |
with: | |
node-version: lts/* | |
cache: pnpm | |
cache-dependency-path: pnpm-lock.yaml | |
- name: Install Dependencies | |
run: pnpm install --frozen-lockfile | |
- name: Build | |
run: pnpm build:production | |
- name: Sentry Release | |
if: github.ref == 'refs/heads/main' | |
uses: getsentry/action-release@v1 | |
env: | |
SENTRY_ORG: rbberdk | |
SENTRY_AUTH_TOKEN: ${{ secrets.SENTRY_AUTH_TOKEN }} | |
SENTRY_PROJECT: node | |
with: | |
version: ${{ github.sha }} | |
sourcemaps: "./dist" | |
finalize: false | |
environment: production | |
url_prefix: "/usr/src/app/dist/" | |
ignore_empty: true | |
ignore_missing: true | |
integration-test-matrix: | |
name: Integration Test | |
runs-on: ubuntu-latest | |
strategy: | |
fail-fast: false | |
matrix: | |
shard: [1, 2, 3, 4] | |
services: | |
redis: | |
image: redis | |
# Set health checks to wait until redis has started | |
options: >- | |
--health-cmd "redis-cli ping" | |
--health-interval 10s | |
--health-timeout 5s | |
--health-retries 5 | |
ports: | |
- 6380:6379 | |
postgres: | |
image: postgres | |
env: | |
POSTGRES_USERNAME: postgres | |
POSTGRES_PASSWORD: postgres | |
# Set health checks to wait until postgres has started | |
options: >- | |
--health-cmd pg_isready | |
--health-interval 10s | |
--health-timeout 5s | |
--health-retries 5 | |
ports: | |
- 5433:5432 | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Setup pnpm | |
uses: pnpm/action-setup@v4 | |
- name: Setup Node.js | |
uses: actions/setup-node@v4 | |
with: | |
node-version: lts/* | |
cache: pnpm | |
cache-dependency-path: pnpm-lock.yaml | |
- name: Install Dependencies | |
run: pnpm install --frozen-lockfile | |
- name: Run Integration Tests | |
run: JEST_JUNIT_OUTPUT_NAME=integration-${{ matrix.shard }}.xml pnpm test:integration:ci --shard ${{ matrix.shard }}/4 | |
- name: Upload Test Results to Codecov | |
if: ${{ !cancelled() }} | |
uses: codecov/test-results-action@v1 | |
with: | |
file: integration-${{ matrix.shard }}.xml | |
token: ${{ secrets.CODECOV_TOKEN }} | |
- name: Upload Coverage | |
uses: codecov/codecov-action@v4 | |
if: ${{ !cancelled() }} | |
with: | |
token: ${{ secrets.CODECOV_TOKEN }} | |
directory: coverage/integration | |
flags: integrationtests,node | |
- name: Upload Test Results | |
uses: actions/upload-artifact@v4 | |
if: ${{ !cancelled() }} | |
with: | |
name: integration-${{ matrix.shard }} | |
path: integration-${{ matrix.shard }}.xml | |
integration-test: | |
# Summary of all test shards | |
# Inspired by https://github.com/orgs/community/discussions/26822#discussioncomment-5122101 | |
needs: [integration-test-matrix] | |
name: Integration Test | |
runs-on: ubuntu-latest | |
if: always() | |
steps: | |
- name: Download Test Results | |
uses: actions/download-artifact@v4 | |
with: | |
merge-multiple: true | |
pattern: integration-* | |
path: test/ | |
- name: Action Summary | |
uses: test-summary/action@v2 | |
with: | |
paths: | | |
test/integration-*.xml | |
- name: Check integration test results | |
# see https://docs.github.com/en/actions/reference/context-and-expression-syntax-for-github-actions#needs-context | |
# see https://stackoverflow.com/a/67532120/4907315 | |
if: >- | |
${{ | |
contains(needs.*.result, 'failure') | |
|| contains(needs.*.result, 'cancelled') | |
|| contains(needs.*.result, 'skipped') | |
}} | |
run: exit 1 | |
build-image: | |
name: Build Image | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Login to GitHub Container Registry | |
uses: docker/login-action@v3 | |
with: | |
registry: ghcr.io | |
username: USERNAME | |
password: ${{ github.token }} | |
- name: Set up Docker Buildx | |
uses: docker/setup-buildx-action@v3 | |
- name: Build Image | |
uses: docker/build-push-action@v6 | |
with: | |
file: Dockerfile.prod | |
tags: | | |
ghcr.io/rubberdok/server:${{ github.sha }} | |
ghcr.io/rubberdok/server:latest | |
cache-from: type=gha | |
cache-to: type=gha,mode=max | |
push: false | |
dev-command-test: | |
name: Development Script Test | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Setup pnpm | |
uses: pnpm/action-setup@v4 | |
- name: Setup Node.js | |
uses: actions/setup-node@v4 | |
with: | |
node-version: lts/* | |
cache: pnpm | |
cache-dependency-path: pnpm-lock.yaml | |
- name: Install Dependencies | |
run: pnpm install --frozen-lockfile | |
- name: Run Dev Script Tests | |
run: JEST_JUNIT_OUTPUT_NAME=dev.xml pnpm run test:dev | |
- name: Upload Test Results to Codecov | |
if: ${{ !cancelled() }} | |
uses: codecov/test-results-action@v1 | |
with: | |
file: dev.xml | |
token: ${{ secrets.CODECOV_TOKEN }} |