Bump docker/build-push-action from 6.8.0 to 6.9.0 #122
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: Pull Request | |
on: | |
# Enable manual running of action if necessary | |
workflow_dispatch: | |
# Build and test deployment the image on pushes to main branch | |
pull_request: | |
# # Only publish on push to main branch | |
# branches: | |
# - main | |
# Only run if the PR yaml, Dockerfile, sh, py or rs files have changed | |
paths: | |
- Dockerfile** | |
- "**on_pr.yaml" | |
- "**.py" | |
- "**.rs" | |
- "**.sh" | |
- "**.toml" | |
jobs: | |
hadolint: | |
name: "Linting: hadolint" | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/[email protected] | |
- name: Pull hadolint/hadolint:latest Image | |
run: docker pull hadolint/hadolint:latest | |
- name: Run hadolint against Dockerfiles | |
run: docker run --rm -i -v "$PWD":/workdir --workdir /workdir --entrypoint hadolint hadolint/hadolint --ignore DL3013 --ignore DL3008 $(find . -type f -iname "Dockerfile*") | |
test_rust_functionality: | |
name: Build and test rust functionality | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout | |
uses: actions/[email protected] | |
with: | |
fetch-depth: 0 | |
- name: Install Rust and deps | |
run: | | |
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y | |
sudo apt-get update | |
sudo apt-get install -y --no-install-recommends libzmq3-dev | |
- name: Get binary version from Cargo.toml | |
id: release_version | |
run: | | |
# Get version from Cargo.toml | |
RELEASE_VERSION=$(cat ./rust/bin/sdre-hub/Cargo.toml | grep '\[package\]' -A9999 | grep -m 1 'version = ' | tr -d " " | tr -d '"' | tr -d "'" | cut -d = -f 2) | |
echo "$RELEASE_VERSION" | |
binary_build_armv7: | |
name: Build Binary - armv7 | |
runs-on: ubuntu-latest | |
# needs: test_rust_functionality | |
steps: | |
- name: Checkout | |
uses: actions/[email protected] | |
with: | |
fetch-depth: 0 | |
- name: Run Docker on tmpfs | |
uses: JonasAlfredsson/[email protected] | |
with: | |
tmpfs_size: 5 | |
swap_size: 4 | |
swap_location: "/mnt/swapfile" | |
- name: Set up QEMU | |
uses: docker/[email protected] | |
- name: Set up Docker Buildx | |
uses: docker/[email protected] | |
- name: Build armv7 | |
uses: docker/[email protected] | |
with: | |
context: . | |
push: false | |
file: Dockerfile.build_binary | |
tags: sdre-hub:armv7 | |
platforms: linux/arm/v7 | |
outputs: type=local,dest=./image_armv7/ | |
- name: Upload artifact armv7 binary | |
uses: actions/[email protected] | |
with: | |
name: sdre-hub.armv7 | |
path: ./image_armv7/sdre-hub | |
binary_build_arm64: | |
name: Build Binary - arm64 | |
runs-on: ubuntu-latest | |
# needs: test_rust_functionality | |
steps: | |
- name: Checkout | |
uses: actions/[email protected] | |
with: | |
fetch-depth: 0 | |
- name: Run Docker on tmpfs | |
uses: JonasAlfredsson/[email protected] | |
with: | |
tmpfs_size: 5 | |
swap_size: 4 | |
swap_location: "/mnt/swapfile" | |
- name: Set up QEMU | |
uses: docker/[email protected] | |
- name: Set up Docker Buildx | |
uses: docker/[email protected] | |
- name: Build arm64 | |
uses: docker/[email protected] | |
with: | |
context: . | |
push: false | |
file: Dockerfile.build_binary | |
tags: sdre-hub:arm64 | |
platforms: linux/arm64 | |
outputs: type=local,dest=./image_arm64/ | |
- name: Upload artifact arm64 binary | |
uses: actions/[email protected] | |
with: | |
name: sdre-hub.arm64 | |
path: ./image_arm64/sdre-hub | |
binary_build_amd64: | |
name: Build Binary - amd64 | |
runs-on: ubuntu-latest | |
needs: test_rust_functionality | |
steps: | |
- name: Checkout | |
uses: actions/[email protected] | |
with: | |
fetch-depth: 0 | |
- name: Run Docker on tmpfs | |
uses: JonasAlfredsson/[email protected] | |
with: | |
tmpfs_size: 5 | |
swap_size: 4 | |
swap_location: "/mnt/swapfile" | |
- name: Set up QEMU | |
uses: docker/[email protected] | |
- name: Set up Docker Buildx | |
uses: docker/[email protected] | |
- name: Build amd64 | |
uses: docker/[email protected] | |
with: | |
context: . | |
push: false | |
file: Dockerfile.build_binary | |
tags: sdre-hub:amd64 | |
platforms: linux/amd64 | |
outputs: type=local,dest=./image_amd64/ | |
- name: Upload artifact amd64 binary | |
uses: actions/[email protected] | |
with: | |
name: sdre-hub.amd64 | |
path: ./image_amd64/sdre-hub | |
frontend_build: | |
name: Build Frontend | |
runs-on: ubuntu-latest | |
needs: [test_rust_functionality] | |
steps: | |
- name: Checkout | |
uses: actions/[email protected] | |
with: | |
fetch-depth: 0 | |
- name: Run Docker on tmpfs | |
uses: JonasAlfredsson/[email protected] | |
with: | |
tmpfs_size: 5 | |
swap_size: 4 | |
swap_location: "/mnt/swapfile" | |
- name: Set up QEMU | |
uses: docker/[email protected] | |
- name: Set up Docker Buildx | |
uses: docker/[email protected] | |
- name: Build amd64 | |
uses: docker/[email protected] | |
with: | |
context: . | |
push: false | |
file: Dockerfile.build_frontend | |
tags: sdre-hub:amd64 | |
platforms: linux/amd64 | |
outputs: type=local,dest=./frontend | |
- name: Upload artifact amd64 binary | |
uses: actions/[email protected] | |
with: | |
name: frontend | |
path: ./frontend/sh-frontend | |
consolidate_binaries: | |
name: Consolidate & Cache Binaries | |
runs-on: ubuntu-latest | |
needs: | |
[ | |
binary_build_amd64, | |
binary_build_arm64, | |
binary_build_armv7, | |
frontend_build, | |
] | |
steps: | |
- run: mkdir -p ./bin | |
- uses: actions/[email protected] | |
with: | |
name: sdre-hub.amd64 | |
path: ./bin/sdre-hub.amd64 | |
- uses: actions/[email protected] | |
with: | |
name: sdre-hub.armv7 | |
path: ./bin/sdre-hub.armv7 | |
- uses: actions/[email protected] | |
with: | |
name: sdre-hub.arm64 | |
path: ./bin/sdre-hub.arm64 | |
- uses: actions/[email protected] | |
with: | |
name: frontend | |
path: ./bin/sh-frontend | |
- run: ls -la */* | |
- name: Cache Binaries | |
uses: actions/[email protected] | |
with: | |
path: ./bin/ | |
key: ${{ github.run_id }} | |
test_docker_image_build: | |
name: Test Docker Image Build | |
needs: [hadolint, consolidate_binaries, test_rust_functionality] | |
uses: sdr-enthusiasts/common-github-workflows/.github/workflows/build_and_push_image.yml@main | |
with: | |
get_version_method: cargo_toml_file_in_repo:file=/Cargo.toml | |
build_with_tmpfs: true | |
build_nohealthcheck: false | |
cache_enabled: true | |
cache_path: ./bin/ | |
cache_key: ${{ github.run_id }} | |
publish-tauri: | |
name: Publish Tauri | |
permissions: | |
contents: write | |
strategy: | |
fail-fast: false | |
matrix: | |
include: | |
- platform: "macos-latest" # for Arm based macs (M1 and above). | |
args: "--target aarch64-apple-darwin" | |
- platform: "macos-latest" # for Intel based macs. | |
args: "--target x86_64-apple-darwin" | |
- platform: "ubuntu-22.04" # for Tauri v1 you could replace this with ubuntu-20.04. | |
args: "" | |
- platform: "windows-latest" | |
args: "" | |
runs-on: ${{ matrix.platform }} | |
steps: | |
- uses: actions/[email protected] | |
- name: setup node | |
uses: actions/[email protected] | |
with: | |
node-version: lts/* | |
- name: install Rust stable | |
uses: dtolnay/rust-toolchain@stable | |
with: | |
# Those targets are only used on macos runners so it's in an `if` to slightly speed up windows and linux builds. | |
targets: ${{ matrix.platform == 'macos-latest' && 'aarch64-apple-darwin,x86_64-apple-darwin' || '' }} | |
- name: install dependencies (ubuntu only) | |
if: matrix.platform == 'ubuntu-22.04' # This must match the platform value defined above. | |
run: | | |
sudo apt-get update | |
sudo apt-get install -y libwebkit2gtk-4.1-dev libappindicator3-dev librsvg2-dev patchelf libsoup2.4-dev libjavascriptcoregtk-4.0-dev libwebkit2gtk-4.0-dev | |
- name: install other stuff | |
run: | | |
curl -L --proto '=https' --tlsv1.2 -sSf https://raw.githubusercontent.com/cargo-bins/cargo-binstall/main/install-from-binstall-release.sh | bash | |
curl https://rustwasm.github.io/wasm-pack/installer/init.sh -sSf | sh | |
cargo binstall trunk wasm-bindgen-cli --no-confirm | |
rustup target add wasm32-unknown-unknown | |
# - name: install frontend dependencies | |
# run: yarn install # change this to npm, pnpm or bun depending on which one you use. | |
- uses: tauri-apps/[email protected] | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
with: | |
# tagName: app-v__VERSION__ # the action automatically replaces \_\_VERSION\_\_ with the app version. | |
# releaseName: "App v__VERSION__" | |
# releaseBody: "See the assets to download this version and install." | |
# releaseDraft: true | |
# prerelease: false | |
args: ${{ matrix.args }} |