Merge branch 'main' of https://github.com/Sudwest-Fryslan/Webformulie… #316
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: Build | |
on: | |
pull_request: | |
branches: | |
- main | |
push: | |
branches: | |
- main | |
jobs: | |
analyze-commits: | |
runs-on: ubuntu-latest | |
steps: | |
- | |
name: Echo DOCKER_IMAGE_REPOSITORY | |
run: "echo DOCKER_IMAGE_REPOSITORY: '${{ vars.DOCKER_IMAGE_REPOSITORY }}'" | |
- | |
name: Checkout | |
uses: actions/checkout@v3 | |
with: | |
token: ${{ secrets.GITHUB_TOKEN }} | |
- | |
name: "🔧 setup node" | |
uses: actions/setup-node@v2.1.5 | |
with: | |
node-version: 20.x | |
- | |
name: "Install plugin for semantic-release" | |
run: npm install @google/semantic-release-replace-plugin -D | |
- | |
name: Install dependencies | |
run: yarn global add semantic-release @semantic-release/changelog @semantic-release/git @semantic-release/github @semantic-release/exec @semantic-release/release-notes-generator @semantic-release/commit-analyzer conventional-changelog-conventionalcommits | |
- | |
name: Get next version | |
id: next-version | |
run: semantic-release --dryRun | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
outputs: | |
release-tag: ${{ steps.next-version.outputs.release-tag }} | |
release-version: ${{ steps.next-version.outputs.release-version }} | |
docker: | |
uses: ./.github/workflows/docker-build-and-push-workflow.yml | |
needs: analyze-commits | |
secrets: inherit | |
with: | |
version: ${{ needs.analyze-commits.outputs.release-version }} | |
publish: >- | |
${{ (startsWith(github.ref, 'refs/tags/') || | |
github.ref == 'refs/heads/main') && | |
github.event_name == 'push' }} | |
docker-image-repo: ${{ vars.DOCKER_IMAGE_REPOSITORY }} | |
upload-sarif-to-security: >- | |
${{ (startsWith(github.ref, 'refs/tags/') || | |
github.ref == 'refs/heads/main') && | |
github.event_name == 'push' }} | |
release: | |
runs-on: ubuntu-latest | |
needs: | |
- docker | |
- analyze-commits | |
steps: | |
- | |
name: Checkout | |
uses: actions/checkout@v3 | |
with: | |
token: ${{ secrets.GITHUB_TOKEN }} | |
- | |
name: Update BuildInfo.properties if there is a version | |
run: /bin/bash .github/workflows/writeBuildInfo.sh ${{ needs.analyze-commits.outputs.release-version }} | |
- | |
name: Make JAR of configuration | |
run: jar cvf /tmp/WebformulierenVerwerker.jar -C src/main/configurations WebformulierenVerwerker | |
- | |
name: "🔧 setup node" | |
uses: actions/setup-node@v2.1.5 | |
with: | |
node-version: 20.x | |
- | |
name: Install dependencies | |
run: yarn global add semantic-release @semantic-release/changelog @semantic-release/git @semantic-release/github @semantic-release/exec @semantic-release/release-notes-generator @semantic-release/commit-analyzer conventional-changelog-conventionalcommits | |
- | |
name: Semantic Release | |
run: "semantic-release" | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
- | |
name: Pull commit that holds the newly created tag - if applicable | |
run: git pull origin main | |
if: github.ref == 'refs/heads/main' | |
- | |
name: Release on GitHub | |
uses: softprops/action-gh-release@v1 | |
with: | |
tag_name: v${{ needs.analyze-commits.outputs.release-version }} | |
files: /tmp/WebformulierenVerwerker.jar | |
if: >- | |
(startsWith(github.ref, 'refs/tags/') || | |
github.ref == 'refs/heads/main') && | |
github.event_name == 'push' && | |
needs.analyze-commits.outputs.release-version != '' && | |
needs.analyze-commits.outputs.release-version != null | |
publish-docker: | |
runs-on: ubuntu-latest | |
needs: | |
- release | |
- analyze-commits | |
if: >- | |
(startsWith(github.ref, 'refs/tags/') || | |
github.ref == 'refs/heads/main') && | |
github.event_name == 'push' && | |
needs.analyze-commits.outputs.release-version != '' && | |
needs.analyze-commits.outputs.release-version != null | |
steps: | |
- | |
name: Show release version | |
run: echo "Pushing docker image for version ${{ needs.analyze-commits.outputs.release-version }}" | |
- | |
name: Checkout | |
uses: actions/checkout@v3 | |
with: | |
token: ${{ secrets.GITHUB_TOKEN }} | |
- | |
name: "Download Docker artifact" | |
uses: actions/download-artifact@v4 | |
with: | |
name: docker | |
path: /tmp | |
- | |
name: "Load Docker artifact" | |
run: | | |
docker load --input /tmp/docker.tar | |
docker image ls -a | |
- | |
name: Login to Container Registry | |
uses: docker/login-action@v2 | |
if: github.event_name == 'push' | |
with: | |
username: ${{ secrets.DOCKER_USERNAME }} | |
password: ${{ secrets.DOCKER_PASSWORD }} | |
- | |
name: Push Docker image | |
run: docker push ${{ vars.DOCKER_IMAGE_REPOSITORY }} --all-tags | |