feat(nixpkgs-fmt): update nixos/nix docker tag to v2.20.4 #1597
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: CI | |
on: | |
pull_request: | |
push: | |
branches: main | |
concurrency: | |
group: ${{ github.workflow }}-${{ github.ref }} | |
cancel-in-progress: true | |
jobs: | |
generate-matrix: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- id: prep | |
run: | | |
echo "matrix=$(./.github/bin/generate-matrix)" >>"$GITHUB_OUTPUT" | |
echo "matrix-ext=$(./.github/bin/generate-matrix external)" >>"$GITHUB_OUTPUT" | |
outputs: | |
matrix: ${{ steps.prep.outputs.matrix }} | |
matrix-ext: ${{ steps.prep.outputs.matrix-ext }} | |
test: | |
runs-on: ubuntu-latest | |
needs: generate-matrix | |
strategy: | |
matrix: ${{ fromJSON(needs.generate-matrix.outputs.matrix) }} | |
fail-fast: false | |
steps: | |
- uses: actions/checkout@v4 | |
- id: prep | |
name: Prepare | |
run: | | |
image=restyled/restyler-${{ matrix.restyler }}:${{ github.sha }} | |
echo "image=$image" >> "$GITHUB_OUTPUT" | |
- name: Lint | |
uses: hadolint/[email protected] | |
with: | |
dockerfile: ${{ matrix.restyler }}/Dockerfile | |
failure-threshold: error | |
- id: buildx | |
name: Setup buildx | |
uses: docker/setup-buildx-action@v3 | |
- name: Restore cache | |
uses: actions/cache@v4 | |
with: | |
path: /tmp/.buildx-cache | |
key: ${{ runner.os }}-${{ matrix.restyler }}-image-${{ github.sha }} | |
restore-keys: | | |
${{ runner.os }}-${{ matrix.restyler }}-image- | |
- name: Registry login | |
if: ${{ github.ref == 'refs/heads/main' }} | |
uses: docker/login-action@v3 | |
with: | |
username: ${{ secrets.DOCKERHUB_USERNAME }} | |
password: ${{ secrets.DOCKERHUB_PASSWORD }} | |
- name: Build | |
if: ${{ github.ref != 'refs/heads/main' }} | |
uses: docker/build-push-action@v5 | |
with: | |
builder: ${{ steps.buildx.outputs.name }} | |
context: ${{ matrix.restyler }} | |
cache-from: type=local,src=/tmp/.buildx-cache | |
cache-to: type=local,mode=max,dest=/tmp/.buildx-cache-new | |
outputs: type=docker | |
tags: ${{ steps.prep.outputs.image }} | |
- name: Build and Push | |
if: ${{ github.ref == 'refs/heads/main' }} | |
uses: docker/build-push-action@v5 | |
with: | |
builder: ${{ steps.buildx.outputs.name }} | |
context: ${{ matrix.restyler }} | |
cache-from: type=local,src=/tmp/.buildx-cache | |
cache-to: type=local,mode=max,dest=/tmp/.buildx-cache-new | |
push: true | |
tags: ${{ steps.prep.outputs.image }} | |
- name: Cache cleanup | |
run: | | |
rm -rf /tmp/.buildx-cache | |
mv /tmp/.buildx-cache-new /tmp/.buildx-cache | |
- name: Container credentials | |
if: ${{ github.ref == 'refs/heads/main' }} | |
run: | | |
mkdir -p ~/work/_temp/_github_home/.docker | |
cp ~/.docker/config.json ~/work/_temp/_github_home/.docker/config.json | |
- name: Test | |
if: ${{ github.ref != 'refs/heads/main' }} | |
uses: restyled-io/sdk@main | |
with: | |
command: >- | |
restylers | |
--sha ${{ github.sha }} | |
--no-build | |
--write restyler.yaml | |
${{ matrix.restyler }} | |
${{ matrix.overrides }} | |
- name: Test and Push | |
if: ${{ github.ref == 'refs/heads/main' }} | |
uses: restyled-io/sdk@main | |
with: | |
command: >- | |
restylers | |
--sha ${{ github.sha }} | |
--no-build | |
--push | |
--write restyler.yaml | |
${{ matrix.restyler }} | |
${{ matrix.overrides }} | |
- if: ${{ github.ref == 'refs/heads/main' }} | |
uses: actions/upload-artifact@v4 | |
with: | |
name: ${{ matrix.restyler }} | |
path: restyler.yaml | |
test-external: | |
runs-on: ubuntu-latest | |
needs: generate-matrix | |
strategy: | |
matrix: ${{ fromJSON(needs.generate-matrix.outputs.matrix-ext) }} | |
fail-fast: false | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Test | |
uses: restyled-io/sdk@main | |
with: | |
command: >- | |
restylers | |
--sha ${{ github.sha }} | |
--no-build | |
--write restyler.yaml | |
${{ matrix.restyler }} | |
- if: ${{ github.ref == 'refs/heads/main' }} | |
uses: actions/upload-artifact@v4 | |
with: | |
name: ${{ matrix.restyler }} | |
path: restyler.yaml | |
# See https://github.com/orgs/community/discussions/60792 | |
status: | |
needs: [test, test-external] | |
if: ${{ failure() || cancelled() }} | |
runs-on: ubuntu-latest | |
steps: | |
- run: | | |
echo "Some Restylers have failed or been cancelled" | |
exit 1 | |
promote: | |
if: ${{ github.ref == 'refs/heads/main' }} | |
needs: [test, test-external] | |
runs-on: ubuntu-latest | |
env: | |
AWS_ACCESS_KEY_ID: ${{ secrets.aws_access_key_id }} | |
AWS_SECRET_ACCESS_KEY: ${{ secrets.aws_secret_access_key }} | |
AWS_DEFAULT_REGION: us-east-1 | |
steps: | |
- uses: actions/download-artifact@v4 | |
- name: Build manifest | |
run: | | |
cat **/*.yaml > restylers.yaml | |
- name: Promote to sha tag | |
uses: restyled-io/sdk@main | |
with: | |
command: >- | |
promote --yes --no-test --file restylers.yaml ${{ github.sha }} | |
release: | |
if: ${{ github.ref == 'refs/heads/main' }} | |
needs: [promote] | |
runs-on: ubuntu-latest | |
env: | |
AWS_ACCESS_KEY_ID: ${{ secrets.aws_access_key_id }} | |
AWS_SECRET_ACCESS_KEY: ${{ secrets.aws_secret_access_key }} | |
AWS_DEFAULT_REGION: us-east-1 | |
steps: | |
- uses: actions/checkout@v4 | |
- id: tag | |
name: Tag | |
uses: mathieudutour/[email protected] | |
with: | |
github_token: ${{ secrets.GITHUB_TOKEN }} | |
- name: Release | |
uses: actions/create-release@v1 | |
with: | |
tag_name: ${{ steps.tag.outputs.new_tag }} | |
release_name: Release ${{ steps.tag.outputs.new_tag }} | |
body: ${{ steps.tag.outputs.changelog }} | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
- name: Promote to version tag | |
uses: restyled-io/sdk@main | |
with: | |
command: >- | |
promote --yes --no-test ${{ github.sha }} ${{ steps.tag.outputs.new_tag }} | |
- name: Promote to dev | |
uses: restyled-io/sdk@main | |
with: | |
command: >- | |
promote --yes --no-test ${{ github.sha }} dev | |
- name: Notify | |
uses: zulip/github-actions-zulip/[email protected] | |
with: | |
api-key: ${{ secrets.ZULIP_API_KEY }} | |
email: ${{ secrets.ZULIP_EMAIL }} | |
organization-url: ${{ secrets.ZULIP_ORGANIZATION_URL }} | |
to: 'changelog' | |
type: 'stream' | |
topic: 'Restylers Releases' | |
content: | | |
Restylers [${{ steps.tag.outputs.new_tag }}](https://github.com/restyled-io/restylers/releases/tag/${{ steps.tag.outputs.new_tag }}) released to `dev` channel | |
${{ steps.tag.outputs.changelog }} | |
Commit: ${{ github.sha }} |