chore: add n42 e2e test workflow #2
This file contains hidden or 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: Release on Tag | ||
| on: | ||
| push: | ||
| tags: | ||
| - "n42-v*.*.*" | ||
| workflow_dispatch: | ||
| env: | ||
| CARGO_TERM_COLOR: always | ||
| permissions: | ||
| contents: write # required for creating releases | ||
| jobs: | ||
| module-test: | ||
| runs-on: ubuntu-latest | ||
| steps: | ||
| - uses: actions/checkout@v4 | ||
| - name: Install Rust toolchain | ||
| uses: dtolnay/rust-toolchain@master | ||
| with: | ||
| toolchain: stable | ||
| - name: Cache dependencies | ||
| uses: Swatinem/rust-cache@v2 | ||
| with: | ||
| shared-key: "rust-build-cache" | ||
| cache-targets: true | ||
| #- name: Run cargo check | ||
| #run: cargo check --verbose | ||
| - name: Run tests | ||
| run: cargo test -p n42-testing | ||
| release: | ||
| name: Build and create release | ||
| runs-on: ubuntu-latest | ||
| needs: module-test # only run if the test job passes | ||
| steps: | ||
| - uses: actions/checkout@v4 | ||
| - name: Install Rust toolchain | ||
| uses: dtolnay/rust-toolchain@master | ||
| with: | ||
| toolchain: stable | ||
| - name: Cache dependencies | ||
| uses: Swatinem/rust-cache@v2 | ||
| with: | ||
| shared-key: "rust-build-cache" | ||
| cache-targets: true | ||
| - name: Build release binary | ||
| run: | | ||
| cargo build --release | ||
| cargo build --release -p mobile-sdk --example mobile-sdk-test | ||
| - uses: actions/upload-artifact@v4 | ||
| with: | ||
| name: build-artifact | ||
| path: | | ||
| target/release/n42 | ||
| target/release/examples/mobile-sdk-test | ||
| tests/ | ||
| - name: Compress artifacts (tar.xz) | ||
| run: | | ||
| tar -cJf ${{ github.ref_name }}.tar.xz target/release/n42 | ||
| - name: Upload binary via SCP | ||
| uses: appleboy/scp-action@v0.1.5 | ||
| with: | ||
| host: ${{ secrets.SERVER_HOST }} | ||
| username: ${{ secrets.SERVER_USER }} | ||
| key: ${{ secrets.SERVER_SSH_KEY }} | ||
| port: 22 | ||
| source: ${{ github.ref_name }}.tar.xz | ||
| target: "n42-releases/${{ github.ref_name }}/" | ||
| - name: Create GitHub Release | ||
| uses: softprops/action-gh-release@v2 | ||
| with: | ||
| name: ${{ github.ref_name }} | ||
| tag_name: ${{ github.ref_name }} | ||
| files: | | ||
| ${{ github.ref_name }}.tar.xz | ||
| env: | ||
| GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | ||
| e2e-test: | ||
| runs-on: ubuntu-latest | ||
| needs: release | ||
| steps: | ||
| - uses: actions/download-artifact@v4 | ||
| with: | ||
| name: build-artifact | ||
| - run: | | ||
| mkdir -p target/release | ||
| mv n42 target/release/ | ||
| mkdir -p target/release/examples/ | ||
| mv mobile-sdk-test target/release/examples/ | ||
| chmod +x target/release/n42 target/release/examples/mobile-sdk-test | ||
| bash tests/e2e.sh | ||