name: Build on: push: pull_request: workflow_dispatch: concurrency: group: ${{ github.workflow }}-${{ github.event.number || github.ref }} cancel-in-progress: true env: RENOVATE_VERSION: 42.52.2 # renovate: datasource=docker depName=renovate packageName=ghcr.io/renovatebot/renovate jobs: prepare: runs-on: ubuntu-latest timeout-minutes: 10 steps: - uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4.3.1 with: show-progress: false - name: 📥 Setup Node.js uses: ./.github/actions/setup-node with: save-cache: true commitlint: runs-on: ubuntu-latest if: ${{ github.event_name != 'pull_request' || github.repository_owner != github.event.pull_request.head.repo.owner.login }} steps: - name: Checkout uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4.3.1 with: fetch-depth: 0 show-progress: false filter: blob:none # we don't need all blobs, only the full tree - name: Lint commit messages uses: wagoid/commitlint-github-action@b948419dd99f3fd78a6548d48f94e3df7f6bf3ed # v6.2.1 continue-on-error: true lint: needs: - prepare runs-on: ubuntu-latest if: ${{ github.event_name != 'pull_request' || github.repository_owner != github.event.pull_request.head.repo.owner.login }} steps: - name: Checkout uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4.3.1 with: show-progress: false - name: 📥 Setup Node.js uses: ./.github/actions/setup-node - name: Lint run: pnpm lint e2e: needs: - prepare runs-on: ubuntu-latest if: ${{ github.event_name != 'pull_request' || github.repository_owner != github.event.pull_request.head.repo.owner.login }} strategy: fail-fast: false matrix: configurationFile: - example/renovate-config.js - example/renovate-config.json steps: - name: Checkout uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4.3.1 with: show-progress: false - name: 📥 Setup Node.js uses: ./.github/actions/setup-node - name: Build run: pnpm build - name: Configure renovate token run: | if [[ "${RENOVATE_TOKEN}" != "" ]]; then echo "RENOVATE_TOKEN=${RENOVATE_TOKEN}" >> $GITHUB_ENV else echo "RENOVATE_TOKEN=${GITHUB_TOKEN}" >> $GITHUB_ENV fi env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} RENOVATE_TOKEN: ${{ secrets.RENOVATE_TOKEN }} - name: Renovate test uses: ./ env: LOG_LEVEL: debug with: configurationFile: ${{ matrix.configurationFile }} - name: Renovate test with entrypoint uses: ./ env: LOG_LEVEL: debug with: configurationFile: ${{ matrix.configurationFile }} renovate-version: ${{ env.RENOVATE_VERSION }} docker-cmd-file: example/entrypoint.sh docker-user: root release: needs: - lint - commitlint - e2e runs-on: ubuntu-latest steps: - name: Setup Git user shell: bash run: | git config --global core.autocrlf false git config --global core.symlinks true git config --global user.name "github-actions[bot]" git config --global user.email "41898282+github-actions[bot]@users.noreply.github.com" - name: Checkout uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4.3.1 with: fetch-depth: 0 # required for semantic release ref: 'release' show-progress: false filter: blob:none # we don't need all blobs, only the full tree - name: fetch pr if: ${{github.event_name == 'pull_request'}} run: git fetch origin +${{ github.sha }}:${{ github.ref }} - name: Merge main id: merge run: | git merge --no-ff -Xtheirs -m 'skip: merge (${{ github.sha }}) [skip release]' ${{ github.sha }} commit=$(git rev-parse HEAD) - name: 📥 Setup Node.js uses: ./.github/actions/setup-node - name: Push release branch run: git push origin release:release if: ${{ github.ref_name == github.event.repository.default_branch }} - name: Release run: | # override for semantic-release export GITHUB_REF=refs/heads/release GITHUB_SHA=${{ steps.merge.outputs.commit }} pnpm release if: ${{ github.ref_name == github.event.repository.default_branch }} env: GITHUB_TOKEN: ${{ github.token }}