Skip to content

Release and Publish

Release and Publish #3

# name: Release And Publish
# on:
# workflow_run:
# workflows: [Test Coverage]
# types:
# - completed
# branches:
# - main
# paths:
# - backend/**
# jobs:
# release:
# name: Release
# runs-on: ubuntu-latest
# if: ${{ github.event.workflow_run.conclusion == 'success' }}
# permissions:
# contents: read
# pull-requests: write
# steps:
# - name: Checkout repository
# uses: actions/checkout@v4
# - name: Get version
# id: get_version
# run: |
# wget https://raw.githubusercontent.com/lzaycoe/brainbox-deployment/refs/heads/main/scripts/get-version.sh
# sudo apt-get install jq
# chmod +x ./get-version.sh
# echo "version=$(./get-version.sh ./package.json)" >> $GITHUB_OUTPUT
# - name: Release
# uses: softprops/action-gh-release@v2
# with:
# name: ${{ github.repository.split('/')[1] }} - v${{ steps.get_version.outputs.version }}
# tag_name: ${{ steps.get_version.outputs.version }}
# generate_release_notes: true
# publish:
# name: Publish Docker Image
# runs-on: ubuntu-latest
# if: ${{ github.event.workflow_run.conclusion == 'success' }}
# permissions:
# contents: read
# packages: write
# steps:
# - name: Checkout repository
# uses: actions/checkout@v4
# - name: Set up Docker Buildx
# uses: docker/setup-buildx-action@v3
# - name: Get version
# id: get_version
# run: |
# wget https://raw.githubusercontent.com/lzaycoe/brainbox-deployment/refs/heads/main/scripts/get-version.sh
# sudo apt-get install jq
# chmod +x ./get-version.sh
# echo "version=$(./get-version.sh ./package.json)" >> $GITHUB_OUTPUT
# - name: Login ghcr.io
# uses: docker/login-action@v3
# with:
# registry: ghcr.io
# username: ${{ github.repository_owner }}
# password: ${{ secrets.GITHUB_TOKEN }}
# - name: Publish image
# run: |
# cd backend
# docker buildx build . \
# -t ghcr.io/${{ github.repository }}:${{ steps.get_version.outputs.version }} \
# -t ghcr.io/${{ github.repository }}:latest \
# --platform=linux/amd64 \
# --load
# docker push ghcr.io/${{ github.repository }}:${{ steps.get_version.outputs.version }}
# docker push ghcr.io/${{ github.repository }}:latest
name: Release and Publish
on:
workflow_run:
workflows: [Test Coverage]
types:
- completed
branches:
- main
jobs:
release:
name: Release
runs-on: ubuntu-latest
if: ${{ github.event.workflow_run.conclusion == 'success' }}
permissions:
contents: read
pull-requests: write
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Get Version
uses: ./.github/actions/get-version
- name: Release
uses: softprops/action-gh-release@v2
with:
name: brainbox-backend - v${{ steps.get_version.outputs.version }}
tag_name: ${{ steps.get_version.outputs.version }}
generate_release_notes: true
publish:
name: Publish Docker Image
runs-on: ubuntu-latest
if: ${{ github.event.workflow_run.conclusion == 'success' }}
permissions:
contents: read
packages: write
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Get Version
uses: ./.github/actions/get-version
- name: Login ghcr.io
uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ github.repository_owner }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Publish image
run: |
cd backend
docker buildx build . \
-t ghcr.io/${{ github.repository }}:${{ steps.get_version.outputs.version }} \
-t ghcr.io/${{ github.repository }}:latest \
--platform=linux/amd64 \
--load
docker push ghcr.io/${{ github.repository }}:${{ steps.get_version.outputs.version }}
docker push ghcr.io/${{ github.repository }}:latest