# Push a version tag (git tag v1.2.0 && git push origin v1.2.0) and every build lands on that # tag's release: macOS (the app), Ubuntu (with a window), Linux without a screen, and the server. # # Runners (see deploy/ci/README.md): # anybot-linux a Linux computer with Docker; jobs run in anybot-builder:22.04 # macos-arm64 a Mac (runs directly on it) name: Release on: push: tags: ['v*'] env: RELEASE_TOKEN: ${{ secrets.RELEASE_TOKEN || secrets.GITHUB_TOKEN }} jobs: linux: runs-on: anybot-linux env: # Kept between releases (a Docker volume on the runner): only what changed is compiled. CARGO_TARGET_DIR: /ci-target steps: - uses: actions/checkout@v4 - name: Build run: | cargo build --release --bin anybot cd relay && cargo build --release - name: Test run: cargo test --release --bin anybot -- --skip live 2>&1 | tail -3 - name: Package run: sh deploy/ci/package-linux.sh "${GITHUB_REF_NAME#v}" - name: Upload run: sh deploy/ci/upload-release.sh "$GITHUB_REF_NAME" dist/*.tar.gz macos: runs-on: macos-arm64 env: CARGO_TARGET_DIR: ${{ github.workspace }}/../anybot-target steps: - uses: actions/checkout@v4 - name: Build run: cargo build --release --bin anybot - name: Package run: sh deploy/mac/bundle.sh "${GITHUB_REF_NAME#v}" - name: Upload run: sh deploy/ci/upload-release.sh "$GITHUB_REF_NAME" dist/*.zip