CI: Fix missing version in mkrelease job #961
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
# GitHub Workflows file | |
name: main | |
defaults: | |
run: | |
shell: bash --noprofile --norc -euo pipefail {0} | |
on: | |
push: | |
branches: | |
- main | |
tags: | |
- 'v*' | |
pull_request: | |
branches: | |
- main | |
env: | |
# https://github.com/bazelbuild/bazel/issues/3001 | |
# MSYS2_ARG_CONV_EXCL: "*" | |
# MSYS_NO_PATHCONV: 1 | |
RUSTFLAGS: -Dwarnings | |
jobs: | |
version: | |
name: Current proxydetox version | |
runs-on: ubuntu-latest | |
outputs: | |
version: ${{ steps.version.outputs.version }} | |
steps: | |
- name: Checkout repository | |
uses: actions/checkout@v3 | |
with: | |
fetch-depth: 1 | |
- name: Fetch dependencies | |
run: | | |
bazel build --nobuild --config=ci //pkg:version | |
- name: Build version | |
run: | | |
bazel build --config=ci //:current_version | |
- name: Version | |
id: version | |
run: | | |
bazel run --config=ci //:current_version | tee -a $GITHUB_OUTPUT | |
bazel_test: | |
name: Bazel test | |
runs-on: ${{ matrix.os }} | |
needs: version | |
strategy: | |
matrix: | |
build: | |
- macos-x86_64 | |
- ubuntu-20.04 | |
- ubuntu-22.04 | |
# - windows | |
include: | |
- build: macos-x86_64 | |
os: macos-latest | |
buildflags: --features=negotiate --config=x86_64_apple_darwin --//:version=${{ needs.version.outputs.version }} | |
- build: ubuntu-20.04 | |
os: ubuntu-20.04 | |
buildflags: --features=negotiate --//:version=${{ needs.version.outputs.version }} | |
- build: ubuntu-22.04 | |
os: ubuntu-22.04 | |
buildflags: --features=negotiate --//:version=${{ needs.version.outputs.version }} | |
# - build: windows | |
# os: windows-latest | |
# buildflags: --features=negotiate --//:version=${{ needs.version.outputs.version }} | |
steps: | |
- name: Git checkout with LF | |
run: | | |
git config --global core.autocrlf false | |
git config --global core.eol lf | |
- name: Checkout repository | |
uses: actions/checkout@v3 | |
with: | |
fetch-depth: 1 | |
- name: Bazel cache | |
uses: actions/cache@v3 | |
with: | |
path: | | |
~/.cache/bazel_build_cache | |
~/.cache/bazel_repo_cache | |
key: ${{ matrix.build }}-bazel-test-${{ hashFiles('Cargo.Bazel.lock', 'WORKSPACE') }} | |
restore-keys: | | |
${{ matrix.build }}-bazel-test- | |
- name: Setup Windows Bazelrc | |
# https://bazel.build/configure/windows | |
run: | | |
echo "startup --output_user_root=C:/tmp" > ${{ github.workspace }}/user.bazelrc | |
shell: cmd | |
if: startswith(matrix.os, 'windows') | |
- name: Install Linux dependency | |
run: sudo apt-get install libkrb5-dev | |
if: ${{ startswith(matrix.os, 'ubuntu') }} | |
- name: Run tests | |
run: 'bazel test --config=ci ${{ matrix.buildflags }} "//..."' | |
shell: cmd | |
if: ${{ startswith(matrix.os, 'windows') }} | |
- name: Run tests | |
run: 'bazel test --config=ci ${{ matrix.buildflags }} "//..."' | |
if: ${{ ! startswith(matrix.os, 'windows') }} | |
bazel_build: | |
name: Bazel build release package | |
runs-on: ${{ matrix.os }} | |
needs: | |
- bazel_test | |
- version | |
strategy: | |
matrix: | |
build: | |
- macos-aarch64 | |
- macos-x86_64 | |
- ubuntu-20.04 | |
- ubuntu-22.04 | |
# - windows | |
include: | |
- build: macos-aarch64 | |
os: macos-latest | |
buildflags: --features=negotiate --config=aarch64_apple_darwin --//:version=${{ needs.version.outputs.version }} | |
pkgfile: proxydetox-${{ needs.version.outputs.version }}-apple-darwin-aarch64.pkg | |
- build: macos-x86_64 | |
os: macos-latest | |
buildflags: --features=negotiate --config=x86_64_apple_darwin --//:version=${{ needs.version.outputs.version }} | |
pkgfile: proxydetox-${{ needs.version.outputs.version }}-apple-darwin-x86_64.pkg | |
- build: ubuntu-20.04 | |
os: ubuntu-20.04 | |
buildflags: --features=negotiate --//:version=${{ needs.version.outputs.version }} | |
pkgfile: proxydetox-${{ needs.version.outputs.version }}-focal_amd64.deb | |
- build: ubuntu-22.04 | |
os: ubuntu-22.04 | |
buildflags: --features=negotiate --//:version=${{ needs.version.outputs.version }} | |
pkgfile: proxydetox-${{ needs.version.outputs.version }}-jammy_amd64.deb | |
# - build: windows | |
# os: windows-latest | |
# buildflags: --features=negotiate --//:version=${{ needs.version.outputs.version }} | |
# pkgfile: proxydetox-${{ needs.version.outputs.version }}-windows-x86_64.zip | |
steps: | |
- name: Git checkout with LF | |
run: | | |
git config --global core.autocrlf false | |
git config --global core.eol lf | |
- name: Checkout repository | |
uses: actions/checkout@v3 | |
with: | |
fetch-depth: 1 | |
- name: Bazel cache | |
uses: actions/cache@v3 | |
with: | |
path: | | |
~/.cache/bazel_build_cache | |
~/.cache/bazel_repo_cache | |
key: ${{ matrix.build }}-bazel-test-${{ hashFiles('Cargo.Bazel.lock', 'WORKSPACE') }} | |
restore-keys: | | |
${{ matrix.build }}-bazel-test- | |
- name: Setup Windows Bazelrc | |
# https://bazel.build/configure/windows | |
run: | | |
echo "startup --output_user_root=C:/tmp" > ${{ github.workspace }}\user.bazelrc | |
shell: cmd | |
if: startswith(matrix.os, 'windows') | |
- name: Install Linux dependency | |
run: sudo apt-get install libkrb5-dev | |
if: startswith(matrix.os, 'ubuntu') | |
- name: Build package | |
run: bazel build -c opt --config=ci ${{ matrix.buildflags }} "//pkg" | |
- name: Copy package | |
run: bazel run -c opt --config=ci ${{ matrix.buildflags }} "//pkg:copy" -- ${{ matrix.pkgfile }} | |
- name: Upload package artifact | |
uses: actions/upload-artifact@v3 | |
with: | |
name: pkg | |
path: ./${{ matrix.pkgfile }} | |
cargo_build_and_test: | |
name: Cargo build and test | |
runs-on: windows-latest | |
steps: | |
- name: Checkout repository | |
uses: actions/checkout@v4 | |
with: | |
fetch-depth: 1 | |
- name: Install Rust | |
uses: actions-rs/toolchain@v1 | |
with: | |
toolchain: stable | |
profile: minimal | |
override: true | |
- uses: Swatinem/rust-cache@v2 | |
with: | |
key: ${{ runner.os }} | |
# see https://github.com/rust-lang/rust-bindgen/issues/1797 | |
- name: Install Windows dependency (LLVM) | |
uses: KyleMayes/[email protected] | |
if: startswith(runner.os, 'windows') | |
with: | |
version: "11.0" | |
directory: ${{ runner.temp }}/llvm | |
- name: Set LIBCLANG_PATH | |
run: echo "LIBCLANG_PATH=$((gcm clang).source -replace "clang.exe")" >> $env:GITHUB_ENV | |
shell: pwsh | |
if: startswith(runner.os, 'windows') | |
- name: Run cargo test | |
run: cargo test | |
- name: Build Release Package | |
id: buildpkg | |
run: ./tools/mkzip.ps1 | |
shell: pwsh | |
- name: Upload package artifact | |
uses: actions/upload-artifact@v3 | |
with: | |
name: pkg | |
path: ./${{ steps.buildpkg.outputs.pkgfile }} | |
mkrelease: | |
name: Create Release | |
runs-on: ubuntu-latest | |
needs: | |
- version | |
- bazel_build | |
- cargo_build_and_test | |
if: github.event_name == 'push' && startswith(github.ref, 'refs/tags/') | |
steps: | |
- name: Checkout repository | |
uses: actions/checkout@v3 | |
- name: Download pkg artifact | |
uses: actions/download-artifact@v3 | |
with: | |
name: pkg | |
- name: Create Release | |
run: | | |
gh release create v${{ needs.version.outputs.version }} --generate-notes *.deb *.pkg *.zip | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
format_check: | |
name: Rust lint | |
runs-on: ubuntu-20.04 | |
strategy: | |
matrix: | |
lint: [clippy, fmt] | |
include: | |
- lint: clippy | |
flags: --all | |
- lint: fmt | |
flags: --all -- --check | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: actions-rs/toolchain@v1 | |
with: | |
toolchain: stable | |
components: rustfmt, clippy | |
override: true | |
- name: Install Linux dependency | |
run: sudo apt-get install libkrb5-dev | |
if: ${{ matrix.lint == 'clippy' }} | |
- name: Lint check | |
run: cargo ${{ matrix.lint }} ${{ matrix.flags }} |