Update release CI #39
Workflow file for this run
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: Cross-Platform and Cross-Architecture Release Build | |
on: | |
push: | |
tags: | |
- 'v*' | |
permissions: | |
contents: write | |
packages: write | |
jobs: | |
build-and-release: | |
runs-on: ${{ matrix.config.os }} | |
strategy: | |
fail-fast: false | |
matrix: | |
config: | |
- {os: ubuntu-latest, arch: x64} | |
- {os: ubuntu-latest, arch: arm64} | |
# - {os: windows-latest, arch: x64} | |
# - {os: windows-latest, arch: arm64} | |
- {os: macos-latest, arch: x64} | |
- {os: macos-latest, arch: arm64} | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Set up Python | |
uses: actions/setup-python@v4 | |
with: | |
python-version: '3.x' | |
- name: Set up CMake (All platforms) | |
uses: lukka/get-cmake@latest | |
- name: Extract version from tag | |
run: echo "VERSION=${GITHUB_REF#refs/tags/v}" >> $GITHUB_ENV | |
env: | |
GITHUB_REF: ${{ github.ref }} | |
- name: Configure and Build | |
run: | | |
cmake -S . -B build -DCMAKE_BUILD_TYPE=Release -DCMAKE_CXX_ARCHITECTURE_ID=${{ matrix.config.arch }} | |
cmake --build build --config Release | |
- name: Rename binary | |
run: | | |
mv build/ser2net2ser build/ser2net2ser-${{ env.VERSION }}-${{ matrix.config.os }}-${{ matrix.config.arch }} | |
- name: Upload Artifacts | |
uses: actions/upload-artifact@v3 | |
with: | |
name: ser2net2ser-${{ env.VERSION }}-${{ matrix.config.os }}-${{ matrix.config.arch }} | |
path: build/ser2net2ser-${{ env.VERSION }}-${{ matrix.config.os }}-${{ matrix.config.arch }} | |
create-release: | |
needs: build-and-release | |
runs-on: ubuntu-latest | |
if: github.event_name == 'push' && startsWith(github.ref, 'refs/tags/') | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Download all artifacts | |
uses: actions/download-artifact@v3 | |
with: | |
path: artifacts | |
- name: List all files in artifacts directory | |
run: ls -R artifacts | |
- name: Debug file locations | |
run: | | |
find artifacts/ -type f | |
- name: Upload binaries to release | |
uses: svenstaro/upload-release-action@v2 | |
with: | |
repo_token: ${{ secrets.GITHUB_TOKEN }} | |
file: artifacts/*/* # Changed this line to include subdirectories | |
tag: ${{ github.ref }} | |
release_name: Release ${{ github.ref_name }} | |
overwrite: true | |
file_glob: true | |
container-image: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v2 | |
- name: Set up Docker Buildx | |
uses: docker/setup-buildx-action@v1 | |
- name: Extract version from tag | |
run: echo "COMMIT_HASH=${GITHUB_REF#refs/tags/v}" >> $GITHUB_ENV | |
env: | |
GITHUB_REF: ${{ github.ref }} | |
- name: Login to GitHub Container Registry | |
uses: docker/login-action@v3 | |
with: | |
registry: ghcr.io | |
username: ${{ github.actor }} | |
password: ${{ secrets.GITHUB_TOKEN }} | |
- name: Build container image | |
run: make build-images | |
env: | |
COMMIT_HASH: ${{ env.COMMIT_HASH }} | |
- name: Tag container image | |
run: make tag-images | |
env: | |
COMMIT_HASH: ${{ env.COMMIT_HASH }} | |
- name: Push container images | |
run: make push-images | |
env: | |
COMMIT_HASH: ${{ env.COMMIT_HASH }} |