diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index b5471ab..366b1fa 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -54,7 +54,7 @@ jobs: latest=${{ startsWith(github.ref, 'refs/heads/main') }} suffix=-${{ github.sha }} - - name: Build and push Docker image + - name: Build Docker image id: build uses: docker/build-push-action@v2 with: @@ -62,6 +62,17 @@ jobs: context: . file: ./Dockerfile platforms: linux/amd64,linux/arm64/v8 - push: true + push: false tags: ${{ steps.meta.outputs.tags }} labels: ${{ steps.meta.outputs.labels }} + + - name: Push Docker image + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + run: ./gradlew build + - name: Setup semantic-release + run: npm install -g semantic-release @semantic-release/git @semantic-release/changelog @codedependant/semantic-release-docker -D + - name: Release + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + run: npx semantic-release \ No newline at end of file diff --git a/.releaserc b/.releaserc new file mode 100644 index 0000000..fe96315 --- /dev/null +++ b/.releaserc @@ -0,0 +1,20 @@ +{ + "branches": [ + "main", + { + "name": "dev", + "prerelease": true + } + ], + "plugins": [ + ["@semantic-release/commit-analyzer", { + "releaseRules": [ + {"type": "build", "release": "patch"} + ] + }], + "@semantic-release/release-notes-generator", + "@semantic-release/changelog", + "@semantic-release/github", + "@codedependant/semantic-release-docker" + ] +} \ No newline at end of file diff --git a/release.package.js b/release.package.js new file mode 100644 index 0000000..27f1b95 --- /dev/null +++ b/release.package.js @@ -0,0 +1,20 @@ +module.exports = { + branches: ["main"], + plugins: [ + [ + "@codedependant/semantic-release-docker", + { + dockerTags: [process.env.IMAGE_TAG], + dockerImage: process.env.IMAGE_NAME, + dockerFile: "Dockerfile", + dockerRegistry: "ghcr.io", + dockerProject: "codedependant", + dockerArgs: { + API_TOKEN: true, + RELEASE_DATE: new Date().toISOString(), + RELEASE_VERSION: "{{next.version}}", + }, + }, + ], + ], +};