CI testing #34
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: CI | |
concurrency: | |
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }} | |
cancel-in-progress: ${{ github.ref_name != 'main' }} | |
on: | |
push: | |
branches: | |
- main | |
pull_request: | |
jobs: | |
lint: | |
name: Lint | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout Repository | |
uses: actions/checkout@v4 | |
- name: Install Task | |
uses: arduino/setup-task@v1 | |
- name: Check go fmt | |
run: | | |
task check-format | |
- name: Check linting | |
run: | | |
task lint | |
build: | |
name: Build | |
needs: [lint] | |
runs-on: ubuntu-latest | |
permissions: | |
contents: write | |
steps: | |
- name: Checkout Repository | |
uses: actions/checkout@v4 | |
- name: Install Task | |
uses: arduino/setup-task@v1 | |
- name: Build Binary | |
run: | | |
task build-all | |
- uses: stefanzweifel/git-auto-commit-action@v5 | |
if: github.event_name == 'pull_request' | |
with: | |
commit_message: "[skip ci] Update compiled binaries" | |
file_pattern: "bin/*" | |
test: | |
name: Test | |
needs: [lint, build] | |
runs-on: ubuntu-latest | |
permissions: | |
contents: write | |
steps: | |
- name: Checkout Repository | |
uses: actions/checkout@v4 | |
with: | |
token: ${{ secrets.GHA_TOKEN }} | |
- name: Install Task | |
uses: arduino/setup-task@v1 | |
- name: Generate test branch name | |
id: generate_branch | |
run: | | |
echo "branch=test/${{ github.head_ref }}/$(git rev-parse --short HEAD)/${{ github.run_number }}" >> $GITHUB_OUTPUT | |
- name: Generate tests | |
run: | | |
ACTION_VERSION=${{ github.head_ref }} task gen-tests | |
- name: Commit generated tests | |
uses: stefanzweifel/git-auto-commit-action@v5 | |
if: github.event_name == 'pull_request' | |
with: | |
commit_message: "[skip ci] Update tests" | |
file_pattern: ".github/workflows/autogen-test.yaml" | |
branch: ${{ steps.generate_branch.outputs.branch }} | |
create_branch: true | |
- name: Trigger generated tests | |
uses: convictional/[email protected] | |
with: | |
owner: Y0sh1dk | |
repo: gha-docker-image-exists | |
github_token: ${{ secrets.GHA_TOKEN }} | |
workflow_file_name: autogen-test.yaml | |
ref: ${{ steps.generate_branch.outputs.branch }} | |
wait_workflow: true | |
- name: Delete branch | |
if: always() | |
run: | | |
echo "Deleting branch ${{ steps.generate_branch.outputs.branch }}..." | |
git push origin --delete ${{ steps.generate_branch.outputs.branch }} |