refactor: Use static dispatch #3031
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
on: | |
push: | |
branches: [main] | |
tags: | |
- "v*" | |
pull_request: | |
name: CI | |
jobs: | |
check-commit-style: | |
name: Check Commit Style | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: webiny/[email protected] | |
typos: | |
name: Typos | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: crate-ci/typos@master | |
with: | |
config: ./.typos.toml | |
rustfmt: | |
name: Rustfmt | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: actions-rs/toolchain@v1 | |
with: | |
profile: minimal | |
toolchain: nightly | |
override: true | |
components: rustfmt | |
- name: Create blank versions of configured file | |
run: echo -e "" >> src/config.rs | |
- name: Run cargo fmt | |
run: cargo fmt --all -- --check | |
flatpak: | |
name: Flatpak | |
runs-on: ubuntu-latest | |
container: | |
image: bilelmoussaoui/flatpak-github-actions:gnome-47 | |
options: --privileged | |
strategy: | |
matrix: | |
arch: [x86_64] | |
# Don't fail the whole workflow if one architecture fails | |
fail-fast: false | |
needs: [check-commit-style, typos, rustfmt] | |
steps: | |
- uses: actions/checkout@v4 | |
# Docker is required by the docker/setup-qemu-action which enables emulation | |
- name: Install dependencies | |
if: ${{ matrix.arch != 'x86_64' }} | |
run: dnf -y install docker | |
- name: Set up QEMU | |
if: ${{ matrix.arch != 'x86_64' }} | |
id: qemu | |
uses: docker/setup-qemu-action@v3 | |
with: | |
platforms: arm64 | |
- uses: bilelmoussaoui/flatpak-github-actions/flatpak-builder@v6 | |
with: | |
bundle: pods.flatpak | |
manifest-path: build-aux/com.github.marhkb.Pods.Devel.json | |
run-tests: true | |
arch: ${{ matrix.arch }} | |
release: | |
if: startsWith(github.ref, 'refs/tags/') | |
name: Release | |
runs-on: ubuntu-latest | |
needs: [flatpak] | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Install cargo-vendor-filterer | |
run: cargo install cargo-vendor-filterer | |
- name: Create vendored sources | |
run: build-aux/dist-vendor.sh ../ src | |
shell: bash | |
- name: Archive repository | |
run: git archive --format tar HEAD > pods-${{ github.ref_name }}.tar | |
- name: Add vendored sources and cargo config to tarball | |
run: tar -rf pods-${{ github.ref_name }}.tar .cargo vendor | |
- name: Compress tarball | |
run: xz -z pods-${{ github.ref_name }}.tar | |
- name: Generate checksum | |
run: sha256sum pods-${{ github.ref_name }}.tar.xz > pods-${{ github.ref_name }}.tar.xz.sha256sum | |
- name: Install xmllint | |
run: sudo apt-get install -y libxml2-utils | |
- name: Extract release notes | |
run: | | |
echo 'RELEASE_NOTES<<EOF' >> $GITHUB_ENV | |
xmllint --xpath '//release[1]/description' data/com.github.marhkb.Pods.metainfo.xml.in.in | xmllint --format - >> $GITHUB_ENV | |
echo 'EOF' >> $GITHUB_ENV | |
- name: Release | |
uses: softprops/action-gh-release@v1 | |
with: | |
draft: true | |
body: ${{ env.RELEASE_NOTES }} | |
prerelease: ${{ contains(github.ref, 'beta') }} | |
files: | | |
pods-${{ github.ref_name }}.tar.xz | |
pods-${{ github.ref_name }}.tar.xz.sha256sum |