Build #640
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: Build | |
on: [push, pull_request] | |
jobs: | |
linux: | |
runs-on: ubuntu-latest | |
permissions: | |
contents: read | |
id-token: write | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
submodules: true | |
- uses: docker/setup-qemu-action@v3 | |
with: | |
platforms: arm64 | |
- uses: docker/setup-buildx-action@v3 | |
with: | |
platforms: linux/amd64,linux/arm64 | |
- uses: docker/build-push-action@v5 | |
id: docker_build_amd64 | |
with: | |
context: . | |
platforms: amd64 | |
cache-from: type=gha | |
cache-to: type=gha | |
load: true | |
- uses: docker/build-push-action@v5 | |
id: docker_build_arm64 | |
with: | |
context: . | |
platforms: arm64 | |
cache-from: type=gha | |
cache-to: type=gha | |
load: true | |
- uses: docker/login-action@v3 | |
with: | |
username: ${{ vars.DOCKERHUB_USERNAME }} | |
password: ${{ secrets.DOCKERHUB_TOKEN }} | |
if: github.event_name == 'push' | |
- uses: docker/metadata-action@v5 | |
id: meta | |
with: | |
images: ${{ vars.DOCKERHUB_USERNAME }}/fishnet | |
tags: | | |
type=ref,event=branch | |
type=semver,pattern={{major}} | |
type=semver,pattern={{major}}.{{minor}} | |
type=semver,pattern={{version}} | |
labels: | | |
org.opencontainers.image.licenses=GPL-3.0-or-later | |
if: github.event_name == 'push' | |
- uses: docker/build-push-action@v5 | |
id: docker_push | |
with: | |
context: . | |
platforms: linux/amd64,linux/arm64 | |
push: true | |
tags: ${{ steps.meta.outputs.tags }} | |
labels: ${{ steps.meta.outputs.labels }} | |
if: github.event_name == 'push' | |
- run: docker cp "$(docker create ${{ steps.docker_build_amd64.outputs.imageid }}):/fishnet" fishnet-x86_64-unknown-linux-musl | |
- run: docker cp "$(docker create ${{ steps.docker_build_arm64.outputs.imageid }}):/fishnet" fishnet-aarch64-unknown-linux-musl | |
- uses: actions/upload-artifact@v4 | |
with: | |
name: fishnet-x86_64-unknown-linux-musl | |
path: fishnet-x86_64-unknown-linux-musl | |
- uses: actions/upload-artifact@v4 | |
with: | |
name: fishnet-aarch64-unknown-linux-musl | |
path: fishnet-aarch64-unknown-linux-musl | |
windows-x86-64: | |
runs-on: windows-2019 | |
defaults: | |
run: | |
shell: msys2 {0} | |
steps: | |
- uses: msys2/setup-msys2@v2 | |
with: | |
msystem: mingw64 | |
update: true | |
install: mingw-w64-x86_64-gcc mingw-w64-x86_64-rust mingw-w64-x86_64-make tar | |
- uses: actions/checkout@v4 | |
with: | |
submodules: true | |
- uses: actions/checkout@v4 | |
with: | |
repository: lichess-org/intel-sde | |
ssh-key: ${{ secrets.ID_RSA_INTEL_SDE }} | |
ref: main | |
path: intel-sde | |
id: sde | |
continue-on-error: true | |
- run: tar xf intel-sde/sde-external-9.0.0-2021-11-07-win.tar.xz && echo SDE_PATH=$(cygpath -u $GITHUB_WORKSPACE)/sde-external-9.0.0-2021-11-07-win/sde.exe | tee $GITHUB_ENV | |
if: steps.sde.outcome == 'success' | |
- run: cargo build --release --target x86_64-pc-windows-gnu -vv | |
- run: mv target/x86_64-pc-windows-gnu/release/fishnet.exe fishnet-x86_64-pc-windows-gnu-unsigned.exe | |
- uses: actions/upload-artifact@v4 | |
id: upload-unsigned-artifact | |
with: | |
name: fishnet-x86_64-pc-windows-gnu-unsigned | |
path: fishnet-x86_64-pc-windows-gnu-unsigned.exe | |
- uses: signpath/[email protected] | |
with: | |
api-token: ${{ secrets.SIGNPATH_API_TOKEN }} | |
organization-id: ${{ vars.SIGNPATH_ORGANIZATION_ID }} | |
project-slug: 'fishnet' | |
signing-policy-slug: ${{ startsWith(github.ref, 'refs/tags/v') && 'release-signing' || 'test-signing' }} | |
github-artifact-id: ${{ steps.upload-unsigned-artifact.outputs.artifact-id }} | |
wait-for-completion: true | |
output-artifact-directory: signed | |
- uses: actions/upload-artifact@v4 | |
with: | |
name: fishnet-x86_64-pc-windows-gnu | |
path: signed | |
macos-x86-64: | |
runs-on: macos-13 | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
submodules: true | |
- uses: dtolnay/rust-toolchain@stable | |
- run: cargo install --force cargo-auditable | |
- run: cargo auditable build --release -vv | |
- run: mv target/release/fishnet fishnet-x86_64-apple-darwin | |
- uses: actions/upload-artifact@v4 | |
with: | |
name: fishnet-x86_64-apple-darwin | |
path: fishnet-x86_64-apple-darwin | |
macos-aarch64: | |
runs-on: macos-12 | |
env: | |
CXXFLAGS: -target arm64-apple-macos11 | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
submodules: true | |
- uses: dtolnay/rust-toolchain@stable | |
with: | |
targets: aarch64-apple-darwin | |
- run: cargo install --force cargo-auditable | |
- run: cargo auditable build --release --target aarch64-apple-darwin -vv | |
- run: mv target/aarch64-apple-darwin/release/fishnet fishnet-aarch64-apple-darwin | |
- uses: actions/upload-artifact@v4 | |
with: | |
name: fishnet-aarch64-apple-darwin | |
path: fishnet-aarch64-apple-darwin | |
github_release: | |
runs-on: ubuntu-latest | |
permissions: | |
contents: write | |
needs: | |
- linux | |
- windows-x86-64 | |
- macos-x86-64 | |
- macos-aarch64 | |
if: startsWith(github.ref, 'refs/tags/v') | |
steps: | |
- run: echo ::set-output name=VERSION::${GITHUB_REF/refs\/tags\//} | |
id: get_version | |
- uses: actions/download-artifact@v4 | |
with: | |
merge-multiple: true | |
- run: sha256sum fishnet-* | |
- uses: softprops/action-gh-release@v1 | |
with: | |
name: fishnet ${{ steps.get_version.outputs.VERSION }} | |
body: | | |
Downloads: | |
* [fishnet-x86_64-unknown-linux-musl](https://fishnet-releases.s3.dualstack.eu-west-3.amazonaws.com/${{ steps.get_version.outputs.VERSION }}/fishnet-x86_64-unknown-linux-musl) | |
* [fishnet-x86_64-pc-windows-gnu.exe](https://fishnet-releases.s3.dualstack.eu-west-3.amazonaws.com/${{ steps.get_version.outputs.VERSION }}/fishnet-x86_64-pc-windows-gnu.exe) | |
* [fishnet-x86_64-apple-darwin](https://fishnet-releases.s3.dualstack.eu-west-3.amazonaws.com/${{ steps.get_version.outputs.VERSION }}/fishnet-x86_64-apple-darwin) | |
* [fishnet-aarch64-unknown-linux-musl](https://fishnet-releases.s3.dualstack.eu-west-3.amazonaws.com/${{ steps.get_version.outputs.VERSION }}/fishnet-aarch64-unknown-linux-musl) | |
* [fishnet-aarch64-apple-darwin](https://fishnet-releases.s3.dualstack.eu-west-3.amazonaws.com/${{ steps.get_version.outputs.VERSION }}/fishnet-aarch64-apple-darwin) | |
generate_release_notes: true | |
draft: true | |
files: fishnet-* | |
fail_on_unmatched_files: true | |
s3_release: | |
runs-on: ubuntu-latest | |
environment: | |
name: s3 | |
needs: github_release | |
steps: | |
- run: echo ::set-output name=VERSION::${GITHUB_REF/refs\/tags\//} | |
id: get_version | |
- uses: actions/download-artifact@v4 | |
with: | |
merge-multiple: true | |
- run: sha256sum fishnet-* | |
- uses: shallwefootball/s3-upload-action@bcd7c2408245fd6cd19b5512a473b1a7a8b48a35 | |
with: | |
aws_key_id: ${{ secrets.AWS_KEY_ID }} | |
aws_secret_access_key: ${{ secrets.AWS_SECRET_ACCESS_KEY }} | |
aws_bucket: fishnet-releases | |
source_dir: . | |
destination_dir: ${{ steps.get_version.outputs.VERSION }} |