chore: simplify conditional expression #1414
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
on: | |
push: | |
tags: | |
- v* | |
pull_request: | |
branches: | |
- main | |
name: Production | |
jobs: | |
linux: | |
name: Build - Linux | |
runs-on: ubuntu-latest | |
steps: | |
- name: Check out code | |
uses: actions/checkout@v4 | |
- name: Set up docker buildx | |
uses: docker/setup-buildx-action@v2 | |
- name: Build docker image | |
uses: docker/build-push-action@v3 | |
with: | |
cache-from: type=gha | |
cache-to: type=gha,mode=max | |
context: ./ci/docker | |
push: false | |
load: true | |
tags: volta | |
- name: Compile and package Volta | |
run: docker run --volume ${PWD}:/root/workspace --workdir /root/workspace --rm --init --tty volta /root/workspace/ci/build-linux.sh volta-linux | |
- name: Upload release artifact | |
uses: actions/upload-artifact@v4 | |
with: | |
name: linux | |
path: target/release/volta-linux.tar.gz | |
linux-arm: | |
name: Build - Linux ARM | |
runs-on: ubuntu-latest | |
steps: | |
- name: Check out code | |
uses: actions/checkout@v4 | |
- name: Install cross-rs | |
uses: taiki-e/install-action@v2 | |
with: | |
tool: cross | |
- name: Compile Volta | |
run: cross build --release --target aarch64-unknown-linux-gnu | |
- name: Package Volta | |
run: | | |
cd target/aarch64-unknown-linux-gnu/release && tar -zcvf "volta-linux-arm.tar.gz" volta volta-shim volta-migrate | |
- name: Upload release artifact | |
uses: actions/upload-artifact@v4 | |
with: | |
name: linux-arm | |
path: target/aarch64-unknown-linux-gnu/release/volta-linux-arm.tar.gz | |
macos: | |
name: Build - MacOS | |
runs-on: macos-latest | |
steps: | |
- name: Check out code | |
uses: actions/checkout@v4 | |
- name: Set up cargo | |
uses: actions-rust-lang/setup-rust-toolchain@v1 | |
with: | |
target: aarch64-apple-darwin,x86_64-apple-darwin | |
- name: Compile and package Volta | |
run: ./ci/build-macos.sh volta-macos | |
- name: Upload release artifact | |
uses: actions/upload-artifact@v4 | |
with: | |
name: macos | |
path: target/universal-apple-darwin/release/volta-macos.tar.gz | |
windows: | |
name: Build - Windows | |
runs-on: windows-latest | |
steps: | |
- name: Check out code | |
uses: actions/checkout@v4 | |
- name: Set up cargo | |
uses: actions-rust-lang/setup-rust-toolchain@v1 | |
with: | |
rustflags: "" | |
- name: Add cargo-wix subcommand | |
run: cargo install --locked cargo-wix | |
- name: Compile and package installer | |
run: | | |
cargo wix --nocapture --package volta --output target\wix\volta-windows.msi | |
- name: Create zip of binaries | |
run: powershell Compress-Archive volta*.exe volta-windows.zip | |
working-directory: ./target/release | |
- name: Upload installer | |
uses: actions/upload-artifact@v4 | |
with: | |
name: windows-installer | |
path: target/wix/volta-windows.msi | |
- name: Upload zip | |
uses: actions/upload-artifact@v4 | |
with: | |
name: windows-zip | |
path: target/release/volta-windows.zip | |
windows-arm: | |
name: Build - Windows ARM | |
runs-on: windows-latest | |
steps: | |
- name: Check out code | |
uses: actions/checkout@v4 | |
- name: Set up cargo | |
uses: actions-rust-lang/setup-rust-toolchain@v1 | |
with: | |
target: aarch64-pc-windows-msvc | |
rustflags: "" | |
- name: Add cargo-wix subcommand | |
run: cargo install --locked cargo-wix | |
- name: Compile and package installer | |
run: | | |
cargo wix --nocapture --package volta --target aarch64-pc-windows-msvc --output target\wix\volta-windows-arm.msi | |
- name: Create zip of binaries | |
run: powershell Compress-Archive volta*.exe volta-windows-arm.zip | |
working-directory: ./target/aarch64-pc-windows-msvc/release | |
- name: Upload installer | |
uses: actions/upload-artifact@v4 | |
with: | |
name: windows-installer-arm | |
path: target/wix/volta-windows-arm.msi | |
- name: Upload zip | |
uses: actions/upload-artifact@v4 | |
with: | |
name: windows-zip-arm | |
path: target/aarch64-pc-windows-msvc/release/volta-windows-arm.zip | |
release: | |
name: Publish release | |
runs-on: ubuntu-latest | |
needs: | |
- linux | |
- linux-arm | |
- macos | |
- windows | |
- windows-arm | |
if: github.event_name == 'push' | |
steps: | |
- name: Check out code | |
uses: actions/checkout@v4 | |
- name: Determine release version | |
id: release_info | |
env: | |
TAG: ${{ github.ref }} | |
run: echo "version=${TAG:11}" >> $GITHUB_OUTPUT | |
- name: Fetch Linux artifact | |
uses: actions/download-artifact@v4 | |
with: | |
name: linux | |
path: release | |
- name: Fetch Linux ARM artifact | |
uses: actions/download-artifact@v4 | |
with: | |
name: linux-arm | |
path: release | |
- name: Fetch MacOS artifact | |
uses: actions/download-artifact@v4 | |
with: | |
name: macos | |
path: release | |
- name: Fetch Windows installer | |
uses: actions/download-artifact@v4 | |
with: | |
name: windows-installer | |
path: release | |
- name: Fetch Windows zip | |
uses: actions/download-artifact@v4 | |
with: | |
name: windows-zip | |
path: release | |
- name: Fetch Windows ARM installer | |
uses: actions/download-artifact@v4 | |
with: | |
name: windows-installer-arm | |
path: release | |
- name: Fetch Windows ARM zip | |
uses: actions/download-artifact@v4 | |
with: | |
name: windows-zip-arm | |
path: release | |
- name: Show release artifacts | |
run: ls -la release | |
- name: Create draft release | |
id: create_release | |
uses: actions/create-release@v1 | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
with: | |
tag_name: ${{ github.ref }} | |
release_name: ${{ github.ref }} | |
draft: true | |
- name: Upload Linux artifact | |
uses: actions/upload-release-asset@v1 | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
with: | |
upload_url: ${{ steps.create_release.outputs.upload_url }} | |
asset_path: ./release/volta-linux.tar.gz | |
asset_name: volta-${{ steps.release_info.outputs.version }}-linux.tar.gz | |
asset_content_type: application/gzip | |
- name: Upload Linux ARM artifact | |
uses: actions/upload-release-asset@v1 | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
with: | |
upload_url: ${{ steps.create_release.outputs.upload_url }} | |
asset_path: ./release/volta-linux-arm.tar.gz | |
asset_name: volta-${{ steps.release_info.outputs.version }}-linux-arm.tar.gz | |
asset_content_type: application/gzip | |
- name: Upload MacOS artifact | |
uses: actions/upload-release-asset@v1 | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
with: | |
upload_url: ${{ steps.create_release.outputs.upload_url }} | |
asset_path: ./release/volta-macos.tar.gz | |
asset_name: volta-${{ steps.release_info.outputs.version }}-macos.tar.gz | |
asset_content_type: application/gzip | |
- name: Upload Windows installer | |
uses: actions/upload-release-asset@v1 | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
with: | |
upload_url: ${{ steps.create_release.outputs.upload_url }} | |
asset_path: ./release/volta-windows.msi | |
asset_name: volta-${{ steps.release_info.outputs.version }}-windows-x86_64.msi | |
asset_content_type: application/x-msi | |
- name: Upload Windows zip | |
uses: actions/upload-release-asset@v1 | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
with: | |
upload_url: ${{ steps.create_release.outputs.upload_url }} | |
asset_path: ./release/volta-windows.zip | |
asset_name: volta-${{ steps.release_info.outputs.version }}-windows.zip | |
asset_content_type: application/zip | |
- name: Upload Windows ARM installer | |
uses: actions/upload-release-asset@v1 | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
with: | |
upload_url: ${{ steps.create_release.outputs.upload_url }} | |
asset_path: ./release/volta-windows-arm.msi | |
asset_name: volta-${{ steps.release_info.outputs.version }}-windows-arm64.msi | |
asset_content_type: application/x-msi | |
- name: Upload Windows ARM zip | |
uses: actions/upload-release-asset@v1 | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
with: | |
upload_url: ${{ steps.create_release.outputs.upload_url }} | |
asset_path: ./release/volta-windows-arm.zip | |
asset_name: volta-${{ steps.release_info.outputs.version }}-windows-arm64.zip | |
asset_content_type: application/zip | |
- name: Upload manifest file | |
uses: actions/upload-release-asset@v1 | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
with: | |
upload_url: ${{ steps.create_release.outputs.upload_url }} | |
asset_path: ./ci/volta.manifest | |
asset_name: volta.manifest | |
asset_content_type: text/plain |