feat(docker): adding METADATA_ID/_REPO_{TAGS,DIGESTS} to push outputs #41
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: tests | |
on: | |
push: | |
branches: | |
- main | |
paths: | |
- src/** | |
- tests/** | |
- config.nims | |
- "*.nimble" | |
# ignore docs not to waste CI minutes | |
- "!src/docs/**" | |
pull_request: | |
types: | |
- opened | |
- synchronize | |
- reopened | |
- ready_for_review | |
paths: | |
- src/** | |
- tests/** | |
- config.nims | |
- "*.nimble" | |
# ignore docs not to waste CI minutes | |
- "!src/docs/**" | |
permissions: | |
contents: read | |
packages: write | |
jobs: | |
pytest: | |
runs-on: ubuntu-latest | |
if: | | |
( | |
github.event_name == 'pull_request' && | |
!github.event.pull_request.draft && | |
!contains(github.event.pull_request.body, format('skip:{0}', github.workflow)) | |
) || ( | |
github.event_name == 'push' && | |
endsWith(github.repository, 'chalk') | |
) || ( | |
github.event_name == 'workflow_dispatch' | |
) || ( | |
github.event_name == 'schedule' | |
) | |
concurrency: | |
# only allow one job per PR running | |
# older pending jobs will be cancelled not to waste CI minutes | |
# cannot use github.job here https://github.com/community/community/discussions/13496 | |
group: ${{ github.workflow }}-pytest-${{ github.ref }} | |
cancel-in-progress: true | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v3 | |
- name: Set up Docker Buildx | |
uses: docker/setup-buildx-action@v2 | |
with: | |
install: true | |
- name: Login to GitHub Container Registry | |
uses: docker/login-action@v2 | |
with: | |
registry: ghcr.io | |
username: ${{ github.repository_owner }} | |
password: ${{ github.token }} | |
- name: Bake Images | |
run: | | |
docker buildx bake chalk server tests --load | |
- name: Compile Chalk | |
if: inputs.chalk_url == '' | |
run: | | |
make | |
- name: Download Chalk | |
if: inputs.chalk_url != '' | |
run: | | |
curl -L "${{ inputs.chalk_url }}" > chalk | |
chmod +x chalk | |
./chalk version | |
- name: Run tests (Fast) | |
# run fast tests by default on PRs when | |
# "tests:--slow" is missing in PR description | |
if: | | |
github.event_name == 'pull_request' && ( | |
!contains(github.event.pull_request.body, 'tests:--slow') | |
) | |
run: | | |
make tests_parallel | |
- name: Run tests (Slow) | |
# run slow tests on non-PR builds and when | |
# PR description has "tests:--slow" | |
if: | | |
github.event_name != 'pull_request' || ( | |
contains(github.event.pull_request.body, 'tests:--slow') | |
) | |
run: | | |
make tests_parallel args="--slow" |