Skip to content

chore: bump 0.16.1, remove base64 dep #372

chore: bump 0.16.1, remove base64 dep

chore: bump 0.16.1, remove base64 dep #372

Workflow file for this run

name: Wadm Release
on:
push:
branches:
- main
tags:
- 'v*'
- 'types-v*'
- 'client-v*'
workflow_dispatch: # Allow manual creation of artifacts without a release
defaults:
run:
shell: bash
jobs:
build:
name: build release assets
runs-on: ${{ matrix.config.runnerOs }}
outputs:
version_output: ${{ steps.version_output.outputs.version }}
strategy:
matrix:
config:
- {
runnerOs: 'ubuntu-latest',
buildCommand: 'cargo zigbuild',
target: 'x86_64-unknown-linux-musl',
uploadArtifactSuffix: 'linux-amd64',
buildOutputPath: 'target/x86_64-unknown-linux-musl/release/wadm',
}
- {
runnerOs: 'ubuntu-latest',
buildCommand: 'cargo zigbuild',
target: 'aarch64-unknown-linux-musl',
uploadArtifactSuffix: 'linux-aarch64',
buildOutputPath: 'target/aarch64-unknown-linux-musl/release/wadm',
}
- {
runnerOs: 'macos-14',
buildCommand: 'cargo zigbuild',
target: 'x86_64-apple-darwin',
uploadArtifactSuffix: 'macos-amd64',
buildOutputPath: 'target/x86_64-apple-darwin/release/wadm',
}
- {
runnerOs: 'macos-14',
buildCommand: 'cargo zigbuild',
target: 'aarch64-apple-darwin',
uploadArtifactSuffix: 'macos-aarch64',
buildOutputPath: 'target/aarch64-apple-darwin/release/wadm',
}
- {
runnerOs: 'windows-latest',
buildCommand: 'cargo build',
target: 'x86_64-pc-windows-msvc',
uploadArtifactSuffix: 'windows-amd64',
buildOutputPath: 'target/x86_64-pc-windows-msvc/release/wadm.exe',
}
steps:
- uses: actions/checkout@v4
- name: set the release version (tag)
if: ${{ startsWith(github.ref, 'refs/tags/v') }}
run: |
echo "RELEASE_VERSION=${GITHUB_REF/refs\/tags\//}" >> $GITHUB_ENV
- name: set the release version (main)
if: ${{ github.ref == 'refs/heads/main' }}
run: |
echo "RELEASE_VERSION=canary" >> $GITHUB_ENV
- name: Output Version
id: version_output
run: echo "version=$RELEASE_VERSION" >> $GITHUB_OUTPUT
- name: Install Zig
uses: goto-bus-stop/setup-zig@v2
- name: Install latest Rust stable toolchain
uses: dtolnay/rust-toolchain@stable
with:
toolchain: stable
components: clippy, rustfmt
target: ${{ matrix.config.target }}
- name: Install cargo zigbuild
uses: taiki-e/install-action@v2
with:
tool: cargo-zigbuild
- name: Build wadm
run: |
${{ matrix.config.buildCommand }} --release --bin wadm --target ${{ matrix.config.target }}
- uses: actions/upload-artifact@v4
with:
name: wadm-${{ env.RELEASE_VERSION }}-${{ matrix.config.uploadArtifactSuffix }}
if-no-files-found: error
path: |
${{ matrix.config.buildOutputPath }}
publish:
if: ${{ startsWith(github.ref, 'refs/tags/v') }}
name: publish release assets
runs-on: ubuntu-latest
needs: build
env:
RELEASE_VERSION: ${{ needs.build.outputs.version_output }}
steps:
- name: Download release assets
uses: actions/download-artifact@v4
- name: Prepare release
run: |
for dir in */; do
test -d "$dir" || continue
tarball="${dir%/}.tar.gz"
tar -czvf "${tarball}" "$dir"
sha256sum "${tarball}" >> SHA256SUMS
done
- name: Create github release
uses: softprops/action-gh-release@v2
with:
token: ${{ secrets.GITHUB_TOKEN }}
prerelease: false
draft: false
files: |
SHA256SUMS
wadm-${{ env.RELEASE_VERSION }}-linux-aarch64.tar.gz
wadm-${{ env.RELEASE_VERSION }}-linux-amd64.tar.gz
wadm-${{ env.RELEASE_VERSION }}-macos-aarch64.tar.gz
wadm-${{ env.RELEASE_VERSION }}-macos-amd64.tar.gz
wadm-${{ env.RELEASE_VERSION }}-windows-amd64.tar.gz
crate:
if: ${{ startsWith(github.ref, 'refs/tags/v') || startsWith(github.ref, 'refs/tags/types-v') || startsWith(github.ref, 'refs/tags/client-v') }}
name: Publish crate
runs-on: ubuntu-latest
needs: build
steps:
- uses: actions/checkout@v4
- name: Install latest Rust stable toolchain
uses: dtolnay/rust-toolchain@stable
with:
toolchain: stable
- name: Cargo login
run: |
cargo login ${{ secrets.CRATES_TOKEN }}
- name: Cargo publish wadm-types
if: ${{ startsWith(github.ref, 'refs/tags/types-v') }}
working-directory: ./crates/wadm-types
run: |
cargo publish
- name: Cargo publish wadm lib
if: ${{ startsWith(github.ref, 'refs/tags/v') }}
working-directory: ./crates/wadm
run: |
cargo publish
- name: Cargo publish wadm-client
if: ${{ startsWith(github.ref, 'refs/tags/client-v') }}
working-directory: ./crates/wadm-client
run: |
cargo publish
docker-image:
name: Build and push docker images
runs-on: ubuntu-latest
needs: build
permissions:
contents: read
packages: write
env:
RELEASE_VERSION: ${{ needs.build.outputs.version_output }}
steps:
- uses: actions/checkout@v4
- name: Set up QEMU
uses: docker/setup-qemu-action@v3
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- uses: actions/download-artifact@v4
with:
path: ./artifacts
pattern: '*linux*'
- name: Prepare container artifacts
working-directory: ./artifacts
run: |
for dir in */; do
name="${dir%/}"
mv "${name}/wadm" wadm
chmod +x wadm
rmdir "${name}"
mv wadm "${name}"
done
- name: Login to GitHub Container Registry
uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ github.repository_owner }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: lowercase repository owner
run: |
echo "OWNER=${GITHUB_REPOSITORY_OWNER,,}" >>$GITHUB_ENV
- name: Build and push (tag)
uses: docker/build-push-action@v6
if: ${{ startsWith(github.ref, 'refs/tags/v') }}
with:
push: true
platforms: linux/amd64,linux/arm64
context: ./
build-args: |
BIN_ARM64=./artifacts/wadm-${{ env.RELEASE_VERSION }}-linux-aarch64
BIN_AMD64=./artifacts/wadm-${{ env.RELEASE_VERSION }}-linux-amd64
tags: ghcr.io/${{ env.OWNER }}/wadm:latest,ghcr.io/${{ env.OWNER }}/wadm:${{ env.RELEASE_VERSION }}
- name: Build and push wolfi (tag)
uses: docker/build-push-action@v6
if: ${{ startsWith(github.ref, 'refs/tags/v') }}
with:
push: true
platforms: linux/amd64,linux/arm64
context: ./
file: ./Dockerfile.wolfi
build-args: |
BIN_ARM64=./artifacts/wadm-${{ env.RELEASE_VERSION }}-linux-aarch64
BIN_AMD64=./artifacts/wadm-${{ env.RELEASE_VERSION }}-linux-amd64
tags: ghcr.io/${{ env.OWNER }}/wadm:latest-wolfi,ghcr.io/${{ env.OWNER }}/wadm:${{ env.RELEASE_VERSION }}-wolfi
- name: Build and push (main)
uses: docker/build-push-action@v6
if: ${{ github.ref == 'refs/heads/main' }}
with:
push: true
platforms: linux/amd64,linux/arm64
context: ./
build-args: |
BIN_ARM64=./artifacts/wadm-${{ env.RELEASE_VERSION }}-linux-aarch64
BIN_AMD64=./artifacts/wadm-${{ env.RELEASE_VERSION }}-linux-amd64
tags: ghcr.io/${{ env.OWNER }}/wadm:canary
- name: Build and push (main)
uses: docker/build-push-action@v6
if: ${{ github.ref == 'refs/heads/main' }}
with:
push: true
platforms: linux/amd64,linux/arm64
context: ./
file: ./Dockerfile.wolfi
build-args: |
BIN_ARM64=./artifacts/wadm-${{ env.RELEASE_VERSION }}-linux-aarch64
BIN_AMD64=./artifacts/wadm-${{ env.RELEASE_VERSION }}-linux-amd64
tags: ghcr.io/${{ env.OWNER }}/wadm:canary-wolfi