ci: Update actions and try to use cache again #2682
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@v3 | |
- uses: webiny/[email protected] | |
typos: | |
name: Typos | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v3 | |
- uses: crate-ci/typos@master | |
with: | |
config: ./.typos.toml | |
rustfmt: | |
name: Rustfmt | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v3 | |
- 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 | |
clippy: | |
name: Clippy | |
runs-on: ubuntu-latest | |
container: | |
image: bilelmoussaoui/flatpak-github-actions:gnome-44 | |
options: --privileged | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Cache flatpak | |
id: cache-flatpak | |
uses: actions/cache@v3 | |
with: | |
path: .flatpak-builder | |
key: ${{ runner.os }}-flatpak-${{ hashFiles('build-aux/com.github.marhkb.Pods.Devel.json') }} | |
restore-keys: ${{ runner.os }}-flatpak- | |
- name: Cache cargo | |
id: cache-cargo | |
uses: actions/cache@v3 | |
with: | |
path: /github/home/.cargo | |
key: ${{ runner.os }}-cargo-${{ hashFiles('Cargo.lock') }} | |
restore-keys: ${{ runner.os }}-cargo- | |
- name: Create dummy versions of configured file | |
run: | | |
sed \ | |
-e 's/str =.*;/str = "";/g' \ | |
-e 's/i32 =.*;/i32 = 0;/g' \ | |
src/config.rs.in \ | |
> src/config.rs | |
- name: Build dependencies | |
run: | | |
flatpak-builder \ | |
--disable-rofiles-fuse \ | |
--install-deps-from=flathub \ | |
--keep-build-dirs \ | |
--stop-at=pods \ | |
flatpak_app build-aux/com.github.marhkb.Pods.Devel.json | |
- name: Retrieve rustc version | |
id: rustc-version | |
run: | | |
echo "RUSTC_VERSION=$(flatpak-builder --run flatpak_app build-aux/com.github.marhkb.Pods.Devel.json rustc -V)" >> $GITHUB_OUTPUT | |
- name: Cache target | |
id: cache-target | |
uses: actions/cache@v3 | |
with: | |
path: target | |
key: ${{ runner.os }}-target-${{ steps.rustc-version.outputs.RUSTC_VERSION }}-${{ hashFiles('Cargo.lock') }} | |
restore-keys: ${{ runner.os }}-target- | |
- name: Run clippy | |
run: | | |
flatpak-builder \ | |
--run \ | |
flatpak_app build-aux/com.github.marhkb.Pods.Devel.json \ | |
cargo clippy -- -D warnings | |
flatpak: | |
name: Flatpak | |
runs-on: ubuntu-latest | |
container: | |
image: bilelmoussaoui/flatpak-github-actions:gnome-44 | |
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, clippy] | |
steps: | |
- uses: actions/checkout@v3 | |
# 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@v2 | |
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@v3 | |
- 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 |