name: CI on: push: pull_request: jobs: checks: name: Static checks runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@v4 - name: Set up Node.js uses: actions/setup-node@v4 with: node-version: 22 - name: Enable corepack run: corepack enable - name: Install dependencies run: pnpm install --frozen-lockfile - name: Lint run: pnpm lint - name: Type check run: pnpm exec tsc --noEmit - name: Build run: pnpm build publish: name: Build and push image if: startsWith(github.ref, 'refs/tags/') needs: checks runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@v4 # PACKAGE_TOKEN is provided by the runner environment, not a repo # secret - it's already present in the job's shell environment. - name: Log in to the Gitea container registry run: echo "$PACKAGE_TOKEN" | docker login dev.pivoine.art -u ${{ github.repository_owner }} --password-stdin - name: Build image run: | docker build \ -t dev.pivoine.art/${{ github.repository }}:latest \ -t dev.pivoine.art/${{ github.repository }}:${{ github.ref_name }} \ . - name: Push image run: | docker push dev.pivoine.art/${{ github.repository }}:latest docker push dev.pivoine.art/${{ github.repository }}:${{ github.ref_name }} - name: Log out if: always() run: docker logout dev.pivoine.art