Github Actions

Written — Updated
  • Each workflow is in a YAML file
  • Here's an example that builds Rust binaries for each platform
    • name: Build release binaries
      
      # The events to trigger the workflow
      # repository_dispatch is a manual trigger that you do via an API call
      on:
        repository_dispatch:
      types: [tag-created]
      
      jobs:
        # Can define multiple jobs
        release:
      name: Build and Release
      runs-on: ${{ matrix.os }}
      strategy:
        matrix:
          include:
            - os: ubuntu-latest
              artifact_name: export-roam-notes
              asset_name: export-roam-notes-linux-amd64
            - os: macos-latest
              artifact_name: export-roam-notes
              asset_name: export-roam-notes-macos-amd64
            - os: windows-latest
              artifact_name: export-roam-notes.exe
              asset_name: export-roam-notes-windows-amd64.exe
      steps:
        - name: Checkout
          uses: actions/checkout@v2
        - name: Build
          run: cargo build --release --locked
        - name: Upload binary
          uses: svenstaro/upload-release-action@v1-release
          with:
            repo_token: ${{ secrets.GITHUB_TOKEN }}
            file: target/release/${{ matrix.artifact_name }}
            asset_name: ${{ matrix.asset_name }}
            tag: ${{ github.event.client_payload.new_version }}
      
  • Manually Triggering Workflows