feat: add some data to the scripts 2 #6
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: Release Finch Daemon | |
on: | |
pull_request: | |
types: | |
- opened | |
- edited | |
- reopened | |
- synchronize | |
branches: | |
- main | |
paths-ignore: | |
- '**.md' | |
workflow_dispatch: | |
workflow_call: | |
env: | |
GO_VERSION: '1.22.7' | |
permissions: | |
contents: write | |
deployments: write | |
jobs: | |
get-latest-tag: | |
name: Get the latest release tag | |
runs-on: ubuntu-latest | |
outputs: | |
tag: ${{ steps.latest-tag.outputs.tag }} | |
steps: | |
- uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7 | |
with: | |
fetch-depth: 0 | |
- name: 'Get the latest tag' | |
id: latest-tag | |
uses: "WyriHaximus/github-action-get-previous-tag@04e8485ecb6487243907e330d522ff60f02283ce" # v1.4.0 | |
generate-artifacts: | |
needs: get-latest-tag | |
runs-on: ubuntu-20.04 | |
env: | |
# Set during setup. | |
RELEASE_TAG: ${{ needs.get-latest-tag.outputs.tag }} | |
DYNAMIC_BINARY_NAME: '' | |
STATIC_BINARY_NAME: '' | |
steps: | |
- uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7 | |
with: | |
fetch-tags: true | |
- uses: actions/setup-go@0a12ed9d6a96ab950c8f026ed9f722fe0da7ef32 # v5.0.2 | |
with: | |
go-version: ${{ env.GO_VERSION }} | |
cache: false | |
- name: 'Echo RELEASE_TAG ENV' | |
run: echo ${{ env.RELEASE_TAG }} | |
- name: Setup variables and release directories | |
run: | | |
export release_tag=${{ env.RELEASE_TAG }} | |
export release_version=${release_tag/v/} # Remove v from tag name | |
echo "DYNAMIC_BINARY_NAME=finch-daemon-${release_version}-linux-amd64.tar.gz" >> $GITHUB_ENV | |
echo "STATIC_BINARY_NAME=finch-daemon-${release_version}-linux-amd64-static.tar.gz" >> $GITHUB_ENV | |
mkdir release | |
- name: Install Go licenses | |
run: go install github.com/google/go-licenses@latest | |
- name: Create Third Party Licences File | |
run: make licenses | |
- name: Install Dependencies for e2e Testing | |
run: ./setup-test-env.sh | |
- name: setup static dependecies | |
run: | | |
sudo apt-get update | |
sudo apt-get install libc6-dev | |
- name: Create release binaries | |
run: make RELEASE_TAG=${{ env.RELEASE_TAG }} release | |
- name: Verify Release version | |
run: | | |
mkdir -p output/static output/dynamic | |
tar -xzf release/${{ env.DYNAMIC_BINARY_NAME }} -C ./output/dynamic | |
tar -xzf release/${{ env.STATIC_BINARY_NAME }} -C ./output/static | |
DYNAMIC_BINARY_VERSION=$(./output/dynamic/finch-daemon --version | grep -oP '\d+\.\d+\.\d+') | |
STATIC_BINARY_VERSION=$(./output/static/finch-daemon --version | grep -oP '\d+\.\d+\.\d+') | |
export release_tag=${{ env.RELEASE_TAG }} | |
export release_version=${release_tag/v/} | |
echo $DYNAMIC_BINARY_VERSION | |
echo $STATIC_BINARY_VERSION | |
if ["$STATIC_BINARY_VERSION" != "$release_version"] || ["$DYNAMIC_BINARY_VERSION" != "$release_version"]; then | |
echo "Version mismatch" | |
exit 1 | |
fi | |
shell: bash | |
- uses: actions/upload-artifact@v4 | |
with: | |
name: artifacts | |
path: release/ | |
if-no-files-found: error | |
outputs: | |
release_tag: ${{ env.RELEASE_TAG }} | |
dynamic_binary_name: ${{ env.DYNAMIC_BINARY_NAME }} | |
static_binary_name: ${{ env.STATIC_BINARY_NAME }} | |
validate-artifacts: | |
needs: generate-artifacts | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: actions/download-artifact@v4 | |
with: | |
name: artifacts | |
path: release/ | |
- run: bash scripts/verify-release-artifacts.sh ${{ needs.generate-artifacts.outputs.release_tag }} | |
# create-release: | |
# needs: [generate-artifacts, validate-artifacts] | |
# runs-on: ubuntu-latest | |
# steps: | |
# - uses: actions/checkout@v4 | |
# - uses: actions/download-artifact@v4 | |
# with: | |
# name: artifacts | |
# - uses: softprops/action-gh-release@v2 | |
# with: | |
# tag_name: ${{ needs.generate-artifacts.outputs.release_tag }} | |
# prerelease: false | |
# generate_release_notes: false | |
# files: |- | |
# ${{ needs.generate-artifacts.outputs.dynamic_binary_name }} | |
# ${{ needs.generate-artifacts.outputs.dynamic_binary_name }}.sha256sum |