diff --git a/.github/dependabot.yml b/.github/dependabot.yml new file mode 100644 index 00000000..3448db07 --- /dev/null +++ b/.github/dependabot.yml @@ -0,0 +1,19 @@ +# To get started with Dependabot version updates, you'll need to specify which +# package ecosystems to update and where the package manifests are located. +# Please see the documentation for all configuration options: +# https://docs.github.com/code-security/dependabot/dependabot-version-updates/configuration-options-for-the-dependabot.yml-file + +version: 2 +updates: + - package-ecosystem: "npm" + directory: "/" + schedule: + # Dependency update will be run each week on monday + interval: "weekly" + labels: + - "dependencies" + ignore: + - dependency-name: "*" + update-types: + - "version-update:semver-major" # Ignore major updates + - "version-update:semver-minor" # Ignore minor updates diff --git a/.github/workflows/dependabot_pr.yml b/.github/workflows/dependabot_pr.yml new file mode 100644 index 00000000..817dbb3e --- /dev/null +++ b/.github/workflows/dependabot_pr.yml @@ -0,0 +1,30 @@ +name: Dependabot PR Auto Approve and Merge + +on: + pull_request: + types: + - opened + +jobs: + dependabot: + runs-on: ubuntu-latest + if: ${{ github.actor == 'dependabot[bot]' && github.event.label.name == 'dependencies' }} + + steps: + - name: Dependabot metadata + id: metadata + uses: dependabot/fetch-metadata@v1.3.2 + with: + github-token: "${{ secrets.GITHUB_TOKEN }}" + + - name: Approve a PR + run: gh pr review --approve "$PR_URL" + env: + PR_URL: ${{github.event.pull_request.html_url}} + GITHUB_TOKEN: ${{secrets.GITHUB_TOKEN}} + + - name: Enable auto merge + run: gh pr merge --auto --rebase "$PR_URL" + env: + PR_URL: ${{github.event.pull_request.html_url}} + GITHUB_TOKEN: ${{secrets.GITHUB_TOKEN}} diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml new file mode 100644 index 00000000..7f5addce --- /dev/null +++ b/.github/workflows/release.yml @@ -0,0 +1,34 @@ +name: GHCR Release CI + +on: + push: + tags: + - "[0-9]+.[0-9]+.[0-9]+" + +jobs: + tests: + name: Release new Docker Image in GHCR + strategy: + matrix: + os: [ubuntu-latest] + runs-on: ${{ matrix.os }} + timeout-minutes: 20 + + steps: + - name: Checkout code + uses: actions/checkout@v4 + with: + fetch-depth: 0 + + - name: Login to GHCR + uses: docker/login-action@v3 + with: + registry: ghcr.io + username: ${{github.repository_owner}} + password: ${{secrets.GITHUB_TOKEN}} + + - name: Build Docker images for GHCR + run: make build_ghcr + + - name: Push Docker images to GHCR + run: make push_ghcr diff --git a/Makefile b/Makefile index 9108db80..0d0e0a59 100644 --- a/Makefile +++ b/Makefile @@ -5,7 +5,7 @@ export DOCKER_BUILDKIT=1 .PHONY: install install: ## Install npm dependencies - npm run build + npm install .PHONY: build build: install ## Build npm project