name: Publish image on: push: branches: - main workflow_dispatch: jobs: bump-crate: runs-on: rust steps: - run: cargo install cargo-bump - name: Bump version and publish uses: https://github.com/cocogitto/cocogitto-action@v3.10 env: NPM_REGISTRY_TOKEN: ${{ secrets.NPM_TOKEN_FORGEJO }} with: release: true check-latest-tag-only: true git-user: 'Cog Bot' git-user-email: 'cog@alecodes.page' create-docker-images: runs-on: host needs: - bump-crate steps: - name: Set up Docker Buildx uses: docker/setup-buildx-action@v3 - name: Login to Docker Hub uses: docker/login-action@v3 with: registry: git.alecodes.page username: ${{ vars.CONTAINER_REGISTRY_USER }} password: ${{ secrets.CONTAINER_REGISTRY_TOKEN }} - name: Build and push uses: docker/build-push-action@v6 with: platforms: linux/amd64 push: true outputs: | type=local,dest=./build-out type=docker tags: | git.alecodes.page/alecodes/compendium:latest git.alecodes.page/alecodes/compendium:${{ github.sha }} # - uses: actions/upload-artifact@v3 # with: # name: my-artifact # path: ./build-out/app # # deploy: # runs-on: ubuntu-latest # needs: # - create-docker-images # steps: # - uses: actions/download-artifact@v3 # - name: Display structure of downloaded files # run: ls -R # - name: Publish release # uses: https://code.forgejo.org/actions/forgejo-release@v2.5.0 # with: # url: "https://git.alecodes.page" # repo: "alecodes/compendium" # direction: upload # # tag: "${{ github.ref_name }}" # sha: "${{ github.sha }}" # release-dir: . # # token: ${{ secrets.TOKEN }} # override: ${{ vars.OVERRIDE || "false" }} # verbose: ${{ vars.VERBOSE || "false" }} # deploy: # runs-on: ubuntu-latest # needs: # - create-docker-images # steps: # - name: Checkout code # uses: actions/checkout@v4 # - name: 'Docker Stack Deploy' # uses: https://github.com/cssnr/stack-deploy-action@v1 # with: # host: ${{ vars.DOCKER_SWARM_HOST }} # port: ${{ vars.DOCKER_SWARM_PORT }} # user: ${{ secrets.DOCKER_SWARM_USER }} # ssh_key: '${{ secrets.DOCKER_SWARM_SSH_KEY }}' # file: 'docker-stack.yaml' # name: 'personal_page'