Add CI. #35
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
name: Main CI | |
on: | |
push: | |
branches: | |
- main | |
pull_request: | |
types: | |
- labeled | |
- unlabeled | |
- opened | |
- edited | |
- reopened | |
- synchronize | |
- ready_for_review | |
concurrency: | |
group: ${{ github.ref }} | |
cancel-in-progress: true | |
jobs: | |
bumper: | |
name: Validate Release Label and Notes | |
runs-on: ubuntu-latest | |
outputs: | |
version: ${{ steps.bump.outputs.version }} | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Set bump mode | |
id: mode | |
run: | | |
[[ ${{ github.ref }} == 'refs/heads/main' ]] && M="bump" || M="validate"; | |
echo "bump_mode=$M" >> $GITHUB_OUTPUT | |
- uses: jefflinse/pr-semver-bump@v1.6.0 | |
name: Validate Pull Request Metadata | |
id: bump | |
with: | |
mode: ${{ steps.mode.outputs.bump_mode }} | |
repo-token: ${{ secrets.GITHUB_TOKEN }} | |
major-label: major release | |
minor-label: minor release | |
patch-label: patch release | |
noop-labels: not-a-release | |
release-notes-prefix: -- begin release notes -- | |
release-notes-suffix: -- end release notes -- | |
with-v: true | |
base-branch: true | |
build: | |
name: Build and Test | |
runs-on: ubuntu-latest | |
needs: | |
- bumper | |
steps: | |
- name: Checkout sources | |
uses: actions/checkout@v4 | |
- name: Cache Bazel | |
uses: actions/cache@v3 | |
with: | |
path: | | |
~/.cache/bazel | |
key: bazel-cache-${{ hashFiles('**/BUILD.bazel', '**/*.bzl', 'WORKSPACE') }} | |
restore-keys: bazel-cache- | |
- name: Build everything | |
env: | |
# Bazelisk will download bazel to here. | |
XDG_CACHE_HOME: ~/.cache/bazel-repo | |
run: bazel --bazelrc=.github/workflows/ci.bazelrc --bazelrc=.bazelrc build //... | |
- name: Test everything | |
env: | |
# Bazelisk will download bazel to here. | |
XDG_CACHE_HOME: ~/.cache/bazel-repo | |
run: bazel --bazelrc=.github/workflows/ci.bazelrc --bazelrc=.bazelrc test //... | |
release: | |
name: Release | |
runs-on: ubuntu-latest | |
# if: github.ref == 'refs/heads/main' && needs.check-pr.version != 'vnull' | |
if: ${{ needs.bumper.version != 'vnull' }} | |
needs: | |
- bumper | |
- build | |
steps: | |
- name: Checkout sources | |
uses: actions/checkout@v4 | |
# - name: Prepare release notes and artifacts | |
# run: .github/workflows/release_prep.sh ${{ needs.bumper.outputs.version }} > release_notes.txt | |
- name: Relnotes | |
run: echo "release notes" > release_notes.txt | |
- name: Reldata | |
run: echo "test" > data.txt | |
- name: Release | |
uses: softprops/action-gh-release@v1 | |
with: | |
prerelease: true | |
draft: true | |
generate_release_notes: true | |
body_path: release_notes.txt | |
fail_on_unmatched_files: true | |
files: data.txt |