name: Create a release
on:
workflow_dispatch:
inputs:
version:
description: Version to release
required: true
type: string
jobs:
publish:
runs-on: ubuntu-22.04
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Use cached dependencies
uses: Swatinem/rust-cache@v2
- name: Prepare
run: |
cargo install cargo-release
touch .env
touch feeds.txt
pip3 install ziglang
cargo install cargo-zigbuild
rustup target add aarch64-unknown-linux-musl
- name: Login to Crates.io
run: cargo login ${{ secrets.CRATESIO_TOKEN }}
- name: Crates.io
run: cargo release publish --execute --no-confirm
- name: Login to Docker Hub
uses: docker/login-action@v2
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
- name: Docker - x86
run: |
cargo build -r -F aws-lambda
docker build -t antoniosbarotsis/rss2email-x86:${{ inputs.version }} --build-arg path="./target/release/rss2email" -f Dockerfile.scratch .
docker push antoniosbarotsis/rss2email-x86:${{ inputs.version }}
- name: Docker - arm
run: |
cargo zigbuild -r -F aws-lambda --target aarch64-unknown-linux-musl
docker build -t antoniosbarotsis/rss2email-arm:${{ inputs.version }} --build-arg path="./target/aarch64-unknown-linux-musl/release/rss2email" -f Dockerfile.scratch .
docker push antoniosbarotsis/rss2email-arm:${{ inputs.version }}