Skip to content

Fix/leak (#434)

Fix/leak (#434) #38

Workflow file for this run

name: Release
on:
push:
tags:
- "v*.*.*"
env:
TARGET: Release
jobs:
get_version_code:
name: Get Version Code
runs-on: ubuntu-22.04
outputs:
version: ${{ steps.get_version_code.outputs.version }}
build_number: ${{ steps.get_version_code.outputs.build_number }}
steps:
- name: Checkout Code
uses: actions/checkout@v3
- name: Get Version Code
id: get_version_code
run: |
TAG_NAME=${GITHUB_REF/refs\/tags\//} # v1.0.0
echo "TAG_NAME=$TAG_NAME" >> $GITHUB_ENV
BUILD_NUMBER=$(echo $TAG_NAME | grep -oP '\d+$')
echo "BUILD_NUMBER=$BUILD_NUMBER" >> $GITHUB_ENV
echo "build_number=$BUILD_NUMBER" >> $GITHUB_OUTPUT
VERSION="${TAG_NAME/v}" #-$BUILD_NUMBER
echo "VERSION=$VERSION" >> $GITHUB_ENV
echo "version=$VERSION" >> $GITHUB_OUTPUT
linux_build_x64:
name: Linux Build (x64)
runs-on: ubuntu-22.04
env:
compiler: clang
compiler_version: 14
steps:
- name: Checkout Code
uses: actions/checkout@v3
- name: Update Environment
run: |
sudo apt-get update
sudo apt-get install -y clang-${{ env.compiler_version }} g++-multilib
echo "CC=clang-${{ env.compiler_version }}" >> $GITHUB_ENV
echo "CXX=clang++-${{ env.compiler_version }}" >> $GITHUB_ENV
- name: Configure Environment
run: make environment
- name: Build
run: make build-x64
- name: Upload Library (x64)
uses: actions/upload-artifact@v3
with:
name: linux-x64
path: |
build/libs/Linux/x64/Release/src/*.so
build/libs/Linux/x64/Release/libs/hacl/*.so
maccatalyst_build_arm64:
name: MacCatalyst Build (arm64)
runs-on: macos-13
env:
compiler_version: 14.2
steps:
- name: Checkout Code
uses: actions/checkout@v3
- name: Setup Compiler
run: sudo xcode-select -switch /Applications/Xcode_${{ env.compiler_version }}.app
- name: Configure Environment
run: make environment
- name: Build
run: make build-maccatalyst
- name: Upload Library (arm64)
uses: actions/upload-artifact@v3
with:
name: maccatalyst-arm64
path: |
build/libs/MacCatalyst/arm64/Release/src/*.dylib
build/libs/MacCatalyst/arm64/Release/libs/hacl/*.a
build/libs/MacCatalyst/arm64/Release/libs/hacl/*.dylib
macos_build_arm64:
name: MacOS Build (arm64)
runs-on: macos-13
env:
compiler_version: 14.2
steps:
- name: Checkout Code
uses: actions/checkout@v3
- name: Setup Compiler
run: sudo xcode-select -switch /Applications/Xcode_${{ env.compiler_version }}.app
- name: Configure Environment
run: make environment
- name: Build
run: make build-arm64
- name: Upload Library (x64)
uses: actions/upload-artifact@v3
with:
name: osx-arm64
path: |
build/libs/Darwin/arm64/Release/src/*.dylib
build/libs/Darwin/arm64/Release/libs/hacl/*.a
build/libs/Darwin/arm64/Release/libs/hacl/*.dylib
macos_build_x64:
name: MacOS Build (x64)
runs-on: macos-13
env:
compiler_version: 14.2
steps:
- name: Checkout Code
uses: actions/checkout@v3
- name: Setup Compiler
run: sudo xcode-select -switch /Applications/Xcode_${{ env.compiler_version }}.app
- name: Configure Environment
run: make environment
- name: Build
run: make build-x64
- name: Upload Library (x64)
uses: actions/upload-artifact@v3
with:
name: osx-x64
path: |
build/libs/Darwin/x64/Release/src/*.dylib
build/libs/Darwin/x64/Release/libs/hacl/*.a
build/libs/Darwin/x64/Release/libs/hacl/*.dylib
wasm_build:
name: WASM Build
runs-on: ubuntu-22.04
env:
compiler: clang
compiler_version: 14
steps:
- name: Checkout Code
uses: actions/checkout@v3
- name: Update Environment
run: |
sudo apt-get update
make environment-wasm
source ./.cache/emscripten/emsdk_env.sh
- name: Configure Environment
run: make environment
- name: Build
run: make build-wasm
- name: Upload Library (wasm)
uses: actions/upload-artifact@v3
with:
name: wasm
path: |
build/libs/wasm/Release/src/electionguard/wasm/*.js
build/libs/wasm/Release/src/electionguard/wasm/*.wasm
windows_build_x86:
name: Windows Build (x86)
runs-on: windows-2022
steps:
- name: Checkout Code
uses: actions/checkout@v3
- name: Install .NET
uses: actions/setup-dotnet@v3
with:
dotnet-version: 7.0.x
- name: Setup Environment
run: make environment
- name: Build
run: make build-x86
- name: Upload Library (x86)
uses: actions/upload-artifact@v3
with:
name: win-x86
path: |
build/libs/Windows/x86/Release/src/Release/*.dll
build/libs/Windows/x86/Release/src/Release/*.exp
build/libs/Windows/x86/Release/src/Release/*.lib
build/libs/Windows/x86/Release/libs/hacl/Release/*.dll
build/libs/Windows/x86/Release/libs/hacl/Release/*.exp
build/libs/Windows/x86/Release/libs/hacl/Release/*.lib
windows_build_x64:
name: Windows Build (x64)
runs-on: windows-2022
steps:
- name: Checkout Code
uses: actions/checkout@v3
- name: Install .NET
uses: actions/setup-dotnet@v3
with:
dotnet-version: 7.0.x
- name: Setup Environment
run: make environment
- name: Build
run: make build-x64
- name: Upload Library (x64)
uses: actions/upload-artifact@v3
with:
name: win-x64
path: |
build/libs/Windows/x64/Release/src/Release/*.dll
build/libs/Windows/x64/Release/src/Release/*.exp
build/libs/Windows/x64/Release/src/Release/*.lib
build/libs/Windows/x64/Release/libs/hacl/Release/*.dll
build/libs/Windows/x64/Release/libs/hacl/Release/*.exp
build/libs/Windows/x64/Release/libs/hacl/Release/*.lib
publish_nuget:
name: Publish Nuget
needs:
[
get_version_code,
linux_build_x64,
maccatalyst_build_arm64,
macos_build_arm64,
macos_build_x64,
windows_build_x64,
windows_build_x86,
]
runs-on: ubuntu-22.04
steps:
- name: Checkout Code
uses: actions/checkout@v3
- name: Setup Environment
run: make environment
- name: Get Linux x64 Artifacts
uses: actions/download-artifact@v3
with:
name: linux-x64
path: build/libs/Linux/x64/Release
- name: Get MacCatalyst arm64 Artifacts
uses: actions/download-artifact@v3
with:
name: maccatalyst-arm64
path: build/libs/MacCatalyst/arm64/Release
- name: Get MacOS arm64 Artifacts
uses: actions/download-artifact@v3
with:
name: osx-arm64
path: build/libs/Darwin/arm64/Release
- name: Get MacOS x64 Artifacts
uses: actions/download-artifact@v3
with:
name: osx-x64
path: build/libs/Darwin/x64/Release
- name: Get Windows x86 Artifacts
uses: actions/download-artifact@v3
with:
name: win-x86
path: build/libs/Windows/x86/Release
- name: Get Windows x64 Artifacts
uses: actions/download-artifact@v3
with:
name: win-x64
path: build/libs/Windows/x64/Release
- name: Update version number
run: dotnet cake ./scripts/build.cake -t AssignVersion --newVersion ${{needs.get_version_code.outputs.version}}
- name: Build and Package
working-directory: bindings/netstandard/ElectionGuard/ElectionGuard.Encryption
run: |
dotnet build -c Release
dotnet pack -c Release --version-suffix ${{needs.get_version_code.outputs.build_number}}
- name: Publish to Nuget.org
working-directory: bindings/netstandard/ElectionGuard/ElectionGuard.Encryption
run: dotnet nuget push "**/*.nupkg" --api-key ${{ secrets.NUGET_API_KEY}} --source https://api.nuget.org/v3/index.json --skip-duplicate
publish_npm:
name: Publish NPM
needs: [get_version_code, wasm_build]
runs-on: ubuntu-22.04
steps:
- name: Checkout Code
uses: actions/checkout@v3
- name: Install Node
uses: actions/setup-node@v3
with:
node-version: 16
- name: Get WASM Artifacts
uses: actions/download-artifact@v3
with:
name: wasm
path: bindings/typescript/src/wasm
- name: Install Dependencies
working-directory: bindings/typescript
run: npm install
- name: Update version number
working-directory: bindings/typescript
run: npm version ${{needs.get_version_code.outputs.version}} --no-git-tag-version
- name: Publish to NPM
working-directory: bindings/typescript
run: |
echo "//registry.npmjs.org/:_authToken=${{ secrets.NPM_REGISTRY_TOKEN }}" > .npmrc
npm run prepare
npm publish
publish_admin:
name: ${{ matrix.name }}
needs: [get_version_code, maccatalyst_build_arm64, windows_build_x64]
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
name: ["macOS", "windows-os"]
include:
- name: macOS
os: macOS-13
version: "14.2"
osFolder: "maccatalyst"
- name: windows-os
os: windows-2022
version: "latest"
osFolder: "windows"
steps:
- name: Checkout Code
uses: actions/checkout@v3
- name: Change Directory
run: cd ${{ github.workspace }}
- name: Install .NET
uses: actions/setup-dotnet@v3
with:
dotnet-version: 7.0.x
- name: Update Mac Environment
if: runner.os == 'macOS'
run: |
ls -ls /Applications/
ls -ls $ANDROID_SDK_ROOT/ndk
sudo xcode-select -switch /Applications/Xcode_${{ matrix.version }}.app
- name: Configure Environment
run: make environment-ui
- name: Get MacCatalyst arm64 Artifacts
uses: actions/download-artifact@v3
with:
name: maccatalyst-arm64
path: build/libs/MacCatalyst/arm64/Release
- name: Get Windows x64 Artifacts
uses: actions/download-artifact@v3
with:
name: win-x64
path: build/libs/Windows/x64/Release
- name: Publish UI
env:
BUILD_NUMBER: ${{ needs.get_version_code.outputs.build_number }}
BUILD_VERSION: "${{needs.get_version_code.outputs.version}}"
APPCENTER_SECRET_MACOS: ${{ secrets.APPCENTER_SECRET_MACOS }}
APPCENTER_SECRET_UWP: ${{ secrets.APPCENTER_SECRET_UWP }}
run: make publish-ui
- name: save build artifacts
uses: actions/upload-artifact@v3
with:
name: electionguard-admin
path: ./publish/*
- name: Publish UI (AppCenter)
env:
BUILD_NUMBER: ${{ needs.get_version_code.outputs.build_number }}
BUILD_VERSION: "${{needs.get_version_code.outputs.version}}"
APPCENTER_API_TOKEN_MACOS: ${{ secrets.APPCENTER_API_TOKEN_MACOS }}
APPCENTER_API_TOKEN_UWP: ${{ secrets.APPCENTER_API_TOKEN_UWP }}
APPCENTER_SECRET_UWP: ${{ secrets.APPCENTER_SECRET_UWP }}
APPCENTER_SECRET_MACOS: ${{ secrets.APPCENTER_SECRET_MACOS }}
run: make publish-ui-appcenter
publish_release:
name: Publish Release
needs: [get_version_code, publish_nuget, publish_npm, publish_admin]
runs-on: ubuntu-22.04
steps:
- name: Create Github Release
uses: softprops/action-gh-release@v1
with:
name: Release ${{needs.get_version_code.outputs.version}}
tag_name: ${{needs.get_version_code.outputs.version}}
draft: true
prerelease: false
#TODO: changelog, artifacts