Skip to content

Release

Release #45

Workflow file for this run

name: Release
on:
workflow_dispatch:
permissions:
contents: read
packages: write
jobs:
release-drafter:
concurrency:
group: release-drafter
outputs:
tag_name: ${{ steps.release-drafter.outputs.tag_name }}
permissions:
contents: write
pull-requests: read
runs-on: ubuntu-latest
steps:
- name: Verify branch
run: |
if [[ "${{ github.ref }}" != refs/heads/main ]]; then
echo "This workflow is only allowed to run on the main branch."
exit 1
fi
- uses: release-drafter/release-drafter@b1476f6e6eb133afa41ed8589daba6dc69b4d3f5 # v6.1.0
id: release-drafter
env:
GITHUB_TOKEN: ${{ github.token }}
- name: Create tag
uses: actions/github-script@v7
with:
script: |
github.rest.git.createRef({
owner: context.repo.owner,
repo: context.repo.repo,
ref: 'refs/tags/${{ steps.release-drafter.outputs.tag_name }}',
sha: context.sha
})
containers:
runs-on: ubuntu-latest
outputs:
full-version: ${{ steps.bootstrap.outputs.full-version }}
major-version: ${{ steps.bootstrap.outputs.major-version }}
steps:
- uses: actions/checkout@v4
with:
ref: ${{ steps.release-drafter.outputs.tag_name }}
- name: Bootstrap Action Workspace
id: bootstrap
uses: ./.github/actions/bootstrap
- name: Login to GitHub Container Registry
uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Publish Containers
run: ./build.sh publishcontainers
release-lambda:
runs-on: ubuntu-latest
needs:
- release-drafter
permissions:
contents: write
steps:
- uses: actions/checkout@v4
with:
ref: ${{ steps.release-drafter.outputs.tag_name }}
- name: Amazon Linux 2023 build
run: |
docker build . -t publish-links-index:latest -f src/infra/docs-lambda-index-publisher/lambda.DockerFile
- name: Get bootstrap binary
run: |
docker cp $(docker create --name tc publish-links-index:latest):/app/.artifacts/publish ./.artifacts && docker rm tc
# TODO publish to AWS
- name: Attach Distribution to release
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: gh release upload ${{ needs.release-drafter.outputs.tag_name }} .artifacts/docs-lambda-index-publisher/release_linux-x64/bootstrap
shell: bash
release:
needs:
- containers
- release-drafter
strategy:
fail-fast: false
matrix:
os: [ ubuntu-latest, windows-latest, macos-latest, macos-latest-large ]
runs-on: ${{ matrix.os }}
permissions:
contents: write
attestations: write
id-token: write
outputs:
full-version: ${{ steps.bootstrap.outputs.full-version }}
major-version: ${{ steps.bootstrap.outputs.major-version }}
steps:
- uses: actions/checkout@v4
with:
ref: ${{ steps.release-drafter.outputs.tag_name }}
- name: Bootstrap Action Workspace
id: bootstrap
uses: ./.github/actions/bootstrap
- name: Publish Binaries
run: ./build.sh publishzip
shell: bash
- name: Generate artifact attestation
uses: actions/attest-build-provenance@v2
with:
subject-path: |
.artifacts/publish/docs-builder/release/*.zip
.artifacts/publish/docs-assembler/release/*.zip
- name: Attach Distribution to release
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
gh release upload ${{ needs.release-drafter.outputs.tag_name }} .artifacts/publish/docs-builder/release/*.zip
gh release upload ${{ needs.release-drafter.outputs.tag_name }} .artifacts/publish/docs-assembler/release/*.zip
shell: bash
publish-release:
needs:
- release
- release-lambda
- release-drafter
runs-on: ubuntu-latest
steps:
- name: Publish release
env:
GH_TOKEN: ${{ github.token }}
TAG_NAME: ${{ needs.release-drafter.outputs.tag_name }}
run: |
gh release edit ${{ needs.release-drafter.outputs.tag_name }} --draft=false --latest