name: docker-build on: push: branches: - main permissions: write-all jobs: release: runs-on: docker outputs: version: ${{ steps.version.outputs.version }} steps: - name: Checkout uses: actions/checkout@v4 with: fetch-depth: 0 - name: Define next tag uses: https://github.com/paulhatch/semantic-version@v5.0.2 id: version with: tag_prefix: "" major_pattern: "(MAJOR)" minor_pattern: "(MINOR)" change_path: . version_format: "${major}.${minor}.${patch}" - name: Create tag run: | git config --global user.name "${GITHUB_ACTOR}" git config --global user.email "${GITHUB_ACTOR}@users.noreply.github.com" git tag "${{ steps.version.outputs.version }}" -m "[forgejo-action-tag]" git push origin --tags webserver: env: REPO_NAME: alpine-php8-webserver needs: - release outputs: version: ${{ needs.release.outputs.version }} runs-on: host steps: - name: Checkout Repository uses: actions/checkout@v4 with: github-server-url: https://git.h2-invent.com repository: Public-System-Design/${{ env.REPO_NAME }} ref: main path: ${{ env.REPO_NAME }} - name: Login to Docker Hub uses: docker/login-action@v3 with: registry: git.h2-invent.com username: ${{ secrets.FORGEJO_ACTION_PACKAGE_RW_USER }} password: ${{ secrets.FORGEJO_ACTION_PACKAGE_RW_KEY }} - name: Build and push Docker image uses: docker/build-push-action@v6 with: context: ./${{ env.REPO_NAME }} push: true tags: | git.h2-invent.com/public-system-design/${{ env.REPO_NAME }}:${{ needs.release.outputs.version }} git.h2-invent.com/public-system-design/${{ env.REPO_NAME }}:latest build-args: | VERSION=${{ needs.release.outputs.version }} cron: env: REPO_NAME: alpine-php8-cron-webserver needs: - webserver runs-on: host steps: - name: Checkout Repository uses: actions/checkout@v4 with: github-server-url: https://git.h2-invent.com repository: Public-System-Design/${{ env.REPO_NAME }} ref: main path: ${{ env.REPO_NAME }} - name: Login to Docker Hub uses: docker/login-action@v3 with: registry: git.h2-invent.com username: ${{ secrets.FORGEJO_ACTION_PACKAGE_RW_USER }} password: ${{ secrets.FORGEJO_ACTION_PACKAGE_RW_KEY }} - name: Build and push Docker image uses: docker/build-push-action@v6 with: context: ./${{ env.REPO_NAME }} push: true tags: | git.h2-invent.com/public-system-design/${{ env.REPO_NAME }}:${{ needs.webserver.outputs.version }} git.h2-invent.com/public-system-design/${{ env.REPO_NAME }}:latest build-args: | VERSION=${{ needs.webserver.outputs.version }}