Skip to content

Release v2.1.5 (#435) #250

Release v2.1.5 (#435)

Release v2.1.5 (#435) #250

Workflow file for this run

name: Release
permissions:
contents: write
on:
push:
tags:
- "v*.*.*"
jobs:
checks:
name: Check version
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Set up python
uses: actions/setup-python@v4
with:
python-version: 3.10.5
- name: Install Poetry
uses: Gr1N/setup-poetry@v8
with:
poetry-version: "1.8.3"
- name: Check project version matches tag name
run: |
[ "`poetry version --short`" == "${{ github.ref_name }}" ]
build:
needs: checks
runs-on: ${{ matrix.OS }}
strategy:
matrix:
include:
- OS: ubuntu-20.04
PYTHON_VERSION: 3.10.14
BUILD_CMD: |
export PYTHONHASHSEED=42
export BUILD_FILE_NAME=operator-${RELEASE_VERSION}-linux-amd64;
mkdir ${BUILD_FILE_NAME};
git rev-parse --short HEAD > GIT_SHA
poetry run pyinstaller \
--distpath ./${BUILD_FILE_NAME} \
./operator.spec;
tar -zcvf ${BUILD_FILE_NAME}.tar.gz ${BUILD_FILE_NAME};
mkdir /tmp/artifacts;
cp ${BUILD_FILE_NAME}.tar.gz /tmp/artifacts;
sha256sum ${BUILD_FILE_NAME}.tar.gz | head -c 64 > /tmp/artifacts/${BUILD_FILE_NAME}.sha256;
- OS: linux-arm-runner
PYTHON_VERSION: 3.10.14
BUILD_CMD: |
export PYTHONHASHSEED=42
export BUILD_FILE_NAME=operator-${RELEASE_VERSION}-linux-arm64;
mkdir ${BUILD_FILE_NAME};
git rev-parse --short HEAD > GIT_SHA
poetry run pyinstaller \
--distpath ./${BUILD_FILE_NAME} \
./operator.spec;
tar -zcvf ${BUILD_FILE_NAME}.tar.gz ${BUILD_FILE_NAME};
rm -rf /tmp/artifacts;
mkdir /tmp/artifacts;
cp ${BUILD_FILE_NAME}.tar.gz /tmp/artifacts;
sha256sum ${BUILD_FILE_NAME}.tar.gz | head -c 64 > /tmp/artifacts/${BUILD_FILE_NAME}.sha256;
- OS: macos-12
PYTHON_VERSION: 3.10.14
BUILD_CMD: |
export PYTHONHASHSEED=42
export BUILD_FILE_NAME=operator-${RELEASE_VERSION}-darwin-amd64;
mkdir ${BUILD_FILE_NAME};
git rev-parse --short HEAD > GIT_SHA
poetry run pyinstaller \
--distpath ./${BUILD_FILE_NAME} \
./operator.spec;
tar -zcvf ${BUILD_FILE_NAME}.tar.gz ${BUILD_FILE_NAME};
mkdir /tmp/artifacts || true;
cp -f ${BUILD_FILE_NAME}.tar.gz /tmp/artifacts;
shasum -a 256 ${BUILD_FILE_NAME}.tar.gz | head -c 64 > /tmp/artifacts/${BUILD_FILE_NAME}.sha256
- OS: windows-latest
PYTHON_VERSION: 3.10.11
BUILD_CMD: |
$RELEASE_VERSION = $env:GITHUB_REF.replace('refs/tags/', '')
$BUILD_FILE_NAME = "operator-" + $RELEASE_VERSION + "-windows-amd64"
$BUILD_FILE_NAME_PATH = ".\" + $BUILD_FILE_NAME
git rev-parse --short HEAD > GIT_SHA
poetry run pyinstaller `
--distpath ./${BUILD_FILE_NAME} `
./operator.spec;
$ZIP_FILE_NAME = $BUILD_FILE_NAME + ".zip"
Compress-Archive -Path $BUILD_FILE_NAME_PATH -DestinationPath $ZIP_FILE_NAME
mkdir \tmp\artifacts
copy $ZIP_FILE_NAME \tmp\artifacts\
$CHECKSUM_FILE_NAME_PASH = "\tmp\artifacts\" + $BUILD_FILE_NAME + ".sha256"
certUtil -hashfile $ZIP_FILE_NAME SHA256 | findstr /i /v "SHA256" | findstr /i /v "CertUtil" > $CHECKSUM_FILE_NAME_PASH
steps:
- uses: actions/checkout@v4
- name: Install build dependencies
run: |
sudo apt-get update
sudo apt-get install --no-install-recommends -y build-essential curl libpq-dev postgresql-client
if: matrix.os == 'linux-arm-runner'
- uses: actions/setup-python@v4
with:
python-version: ${{ matrix.PYTHON_VERSION }}
- name: Install Poetry
uses: Gr1N/setup-poetry@v8
with:
poetry-version: "1.8.3"
- name: Install dependencies
run: poetry install --with build --without dev --no-interaction --no-root
- name: Get the version
id: get_version
run: echo ::set-output name=VERSION::$(echo $GITHUB_REF | cut -d / -f 3)
- name: Build executable for ${{ matrix.OS }}
env:
RELEASE_VERSION: ${{ steps.get_version.outputs.VERSION }}
run: ${{ matrix.BUILD_CMD }}
- name: Upload artifacts
uses: actions/upload-artifact@v3
with:
name: ${{ matrix.OS }}
path: /tmp/artifacts/*
if-no-files-found: error
release:
needs: build
runs-on: ubuntu-latest
steps:
- name: Download all artifacts
uses: actions/download-artifact@v3
with:
path: /tmp/artifacts
- name: Display structure of downloaded files
run: ls -R
working-directory: /tmp/artifacts
- name: Get the version
id: get_version
run: echo ::set-output name=VERSION::$(echo $GITHUB_REF | cut -d / -f 3)
- name: Release
uses: softprops/action-gh-release@v1
with:
fail_on_unmatched_files: true
files: |
/tmp/artifacts/ubuntu-20.04/operator-${{ steps.get_version.outputs.VERSION }}-linux-amd64.tar.gz
/tmp/artifacts/ubuntu-20.04/operator-${{ steps.get_version.outputs.VERSION }}-linux-amd64.sha256
/tmp/artifacts/linux-arm-runner/operator-${{ steps.get_version.outputs.VERSION }}-linux-arm64.tar.gz
/tmp/artifacts/linux-arm-runner/operator-${{ steps.get_version.outputs.VERSION }}-linux-arm64.sha256
/tmp/artifacts/macos-12/operator-${{ steps.get_version.outputs.VERSION }}-darwin-amd64.tar.gz
/tmp/artifacts/macos-12/operator-${{ steps.get_version.outputs.VERSION }}-darwin-amd64.sha256
/tmp/artifacts/windows-latest/operator-${{ steps.get_version.outputs.VERSION }}-windows-amd64.zip
/tmp/artifacts/windows-latest/operator-${{ steps.get_version.outputs.VERSION }}-windows-amd64.sha256