Skip to content

1.0.6

1.0.6 #15

Workflow file for this run

name: Publish
on:
release:
types: [published]
jobs:
publish-binaries:
name: Publish binaries (${{ matrix.target }})
runs-on: ${{ matrix.os }}
permissions:
contents: write
env:
CARGO_INCREMENTAL: 0
CARGO_NET_RETRY: 10
RUST_BACKTRACE: short
RUSTUP_MAX_RETRIES: 10
MACOSX_DEPLOYMENT_TARGET: 10.7
strategy:
fail-fast: false
matrix:
include:
- target: x86_64-unknown-linux-gnu
os: ubuntu-latest
- target: x86_64-unknown-linux-musl
os: ubuntu-latest
- target: x86_64-unknown-freebsd
os: ubuntu-latest
# NOTE: it has known issues, and always fails
# - target: x86_64-unknown-netbsd
# os: ubuntu-latest
- target: x86_64-apple-darwin
os: macos-latest
- target: armv7-unknown-linux-gnueabihf
os: ubuntu-latest
- target: armv7-unknown-linux-musleabihf
os: ubuntu-latest
- target: aarch64-unknown-linux-gnu
os: ubuntu-latest
- target: aarch64-unknown-linux-musl
os: ubuntu-latest
- target: aarch64-apple-darwin
os: macos-latest
- target: riscv64gc-unknown-linux-gnu
os: ubuntu-latest
# NOTE: MUSL is not yet widely available for cross-compilation
# - target: riscv64gc-unknown-linux-musl
# os: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Build and Upload
uses: taiki-e/upload-rust-binary-action@v1
with:
bin: decoyssh
target: ${{ matrix.target }}
token: ${{ secrets.GITHUB_TOKEN }}
ref: ${{ github.ref }}
publish-cargo:
name: Publish Cargo package
runs-on: ubuntu-latest
permissions:
contents: read
steps:
- uses: actions/checkout@v4
- name: Setup Rust
uses: actions-rust-lang/setup-rust-toolchain@v1
with:
toolchain: stable
cache: true
- name: Publish
continue-on-error: true
run: cargo publish --token ${{ secrets.CARGO_REGISTRY_TOKEN }}
publish-image:
name: Publish container image
runs-on: ubuntu-latest
permissions:
packages: write
contents: read
env:
GITHUB_REGISTRY_IMAGE: ghcr.io/${{ github.repository_owner }}/decoyssh
DOCKER_REGISTRY_IMAGE: docker.io/aeron/decoyssh
steps:
- uses: actions/checkout@v4
- id: recase
uses: ASzc/change-string-case-action@v6
with:
string: ${{ env.GITHUB_REGISTRY_IMAGE }}
- name: Set up QEMU
uses: docker/setup-qemu-action@v3
# HACK: https://github.com/docker/setup-qemu-action/issues/60
# and https://github.com/tonistiigi/binfmt/issues/122
with:
image: tonistiigi/binfmt:qemu-v6.2.0
- name: Build Image
id: build-image
uses: redhat-actions/buildah-build@v2
with:
tags: >-
${{ steps.recase.outputs.lowercase }}:latest
${{ steps.recase.outputs.lowercase }}:${{ github.ref_name }}
${{ env.DOCKER_REGISTRY_IMAGE }}:latest
${{ env.DOCKER_REGISTRY_IMAGE }}:${{ github.ref_name }}
platforms: linux/amd64, linux/arm64
containerfiles: |
./Dockerfile
- name: Log into GitHub Container Registry
uses: redhat-actions/podman-login@v1
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ github.token }}
- name: Log into Docker Hub
uses: redhat-actions/podman-login@v1
with:
registry: docker.io
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_PASSWORD }}
- name: Push to registries
uses: redhat-actions/push-to-registry@v2
with:
tags: ${{ steps.build-image.outputs.tags }}
- name: Update Docker Hub description
uses: peter-evans/dockerhub-description@v4
continue-on-error: true
with:
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_PASSWORD }}
repository: aeron/decoyssh