Skip to content

Merge pull request #333 from nextcloud/dependabot/cargo/serde_json-1.… #685

Merge pull request #333 from nextcloud/dependabot/cargo/serde_json-1.…

Merge pull request #333 from nextcloud/dependabot/cargo/serde_json-1.… #685

Workflow file for this run

name: Rust CI
on:
pull_request:
push:
branches:
- main
- master
- stable*
permissions:
contents: read
env:
APP_NAME: notify_push
jobs:
check:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: cachix/install-nix-action@v20
- uses: cachix/cachix-action@v12
with:
name: notify-push
authToken: '${{ secrets.CACHIX_AUTH_TOKEN }}'
- run: nix build .#check
clippy:
runs-on: ubuntu-latest
needs: check
steps:
- uses: actions/checkout@v3
- uses: cachix/install-nix-action@v20
- uses: cachix/cachix-action@v12
with:
name: notify-push
authToken: '${{ secrets.CACHIX_AUTH_TOKEN }}'
- run: nix build .#clippy
tests:
runs-on: ubuntu-latest
needs: check
steps:
- uses: actions/checkout@v3
- uses: cachix/install-nix-action@v20
- uses: cachix/cachix-action@v12
with:
name: notify-push
authToken: '${{ secrets.CACHIX_AUTH_TOKEN }}'
- run: nix build .#test
matrix:
runs-on: ubuntu-latest
outputs:
matrix: ${{ steps.set-matrix.outputs.matrix }}
steps:
- uses: actions/checkout@v3
- uses: cachix/install-nix-action@v20
- id: set-matrix
run: echo "matrix={\"target\":$(nix eval --json ".#targets.x86_64-linux")}" | tee $GITHUB_OUTPUT
build:
runs-on: ubuntu-latest
needs: [check, matrix]
strategy:
fail-fast: false
matrix: ${{fromJson(needs.matrix.outputs.matrix)}}
steps:
- uses: actions/checkout@v3
- uses: cachix/install-nix-action@v20
- uses: cachix/cachix-action@v12
with:
name: notify-push
authToken: '${{ secrets.CACHIX_AUTH_TOKEN }}'
- run: nix build .#${{ matrix.target }}
- uses: actions/upload-artifact@v3
with:
name: notify_push-${{ matrix.target }}
path: result/bin/notify_push
test-client-check:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: cachix/install-nix-action@v20
- uses: cachix/cachix-action@v12
with:
name: notify-push
authToken: '${{ secrets.CACHIX_AUTH_TOKEN }}'
- run: nix build .#test_client-check
test-client-clippy:
runs-on: ubuntu-latest
needs: test-client-check
steps:
- uses: actions/checkout@v3
- uses: cachix/install-nix-action@v20
- uses: cachix/cachix-action@v12
with:
name: notify-push
authToken: '${{ secrets.CACHIX_AUTH_TOKEN }}'
- run: nix build .#test_client-clippy
test-client-matrix:
runs-on: ubuntu-latest
outputs:
matrix: ${{ steps.set-matrix.outputs.matrix }}
steps:
- uses: actions/checkout@v3
- uses: cachix/install-nix-action@v20
- id: set-matrix
run: echo "matrix=$(nix eval --json ".#testClientMatrix.x86_64-linux")" | tee $GITHUB_OUTPUT
build-test-client:
name: Build test client
runs-on: ubuntu-latest
needs: [test-client-check, test-client-matrix]
strategy:
fail-fast: false
matrix: ${{fromJson(needs.test-client-matrix.outputs.matrix)}}
steps:
- uses: actions/checkout@v3
- uses: cachix/install-nix-action@v20
- uses: cachix/cachix-action@v12
with:
name: notify-push
authToken: '${{ secrets.CACHIX_AUTH_TOKEN }}'
- run: nix build .#test_client-${{ matrix.target }}
- uses: actions/upload-artifact@v3
with:
name: test_client-${{ matrix.target }}${{ matrix.extension }}
path: result/bin/test_client${{ matrix.extension }}
msrv:
name: Check MSRV
runs-on: ubuntu-latest
needs: check
steps:
- uses: actions/checkout@v3
- uses: cachix/install-nix-action@v20
- uses: cachix/cachix-action@v12
with:
name: notify-push
authToken: '${{ secrets.CACHIX_AUTH_TOKEN }}'
- run: nix build .#checkMsrv
package:
name: Package nightly release
runs-on: ubuntu-latest
needs: build
steps:
- uses: cachix/install-nix-action@v20
- uses: cachix/cachix-action@v12
with:
name: notify-push
authToken: '${{ secrets.CACHIX_AUTH_TOKEN }}'
- name: Checkout code
uses: actions/checkout@v3
with:
fetch-depth: 0
- name: Setup krankerl
run: |
wget https://github.com/ChristophWurst/krankerl/releases/download/v0.14.0/krankerl_0.14.0_amd64.deb
sudo dpkg -i krankerl_0.14.0_amd64.deb
- name: Package app
run: krankerl package
- uses: actions/upload-artifact@v3
with:
name: ${{ env.APP_NAME }}.tar.gz
path: build/artifacts/${{ env.APP_NAME }}.tar.gz