From 03783525d729edfaeba353c808ba8b393ae6a585 Mon Sep 17 00:00:00 2001 From: Avimitin Date: Tue, 9 Apr 2024 18:18:43 +0800 Subject: [PATCH] [ci] add release workflow Signed-off-by: Avimitin --- .github/workflows/release.yml | 54 +++++++++++++++++++++++++++++++++++ 1 file changed, 54 insertions(+) create mode 100644 .github/workflows/release.yml diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml new file mode 100644 index 0000000000..f71c046197 --- /dev/null +++ b/.github/workflows/release.yml @@ -0,0 +1,54 @@ +name: Build Docker Image + +# Release on any git tag +on: + push: + tags: ['*'] + +jobs: + build: + runs-on: [self-hosted, linux, nixos] + strategy: + matrix: + config: + - blastoise + outputs: + cache-key: ${{ steps.build.outputs.cache-key }} + steps: + - uses: actions/checkout@v4 + with: + # Checkout the triggered tag name + ref: ${{ github.ref_name }} + - name: Build docker image file + id: build + run: | + closure="$(nix build -L '.#t1.${{ matrix.config }}.release.docker-layers.final-image' --no-link --print-out-paths)" + echo "path: $closure" + echo "cache-key=$(nix hash file --base64 --type sha256 --sri $closure)" > $GITHUB_OUTPUT + - name: Upload to cache + uses: actions/cache/save@v4 + with: + path: layer/image.tar + key: ${{ steps.build.outputs.cache-key }} + + upload: + runs-on: ubuntu-latest + needs: [build] + steps: + - name: Restore from cache + uses: actions/cache/restore@v4 + id: cache + with: + path: layer/image.tar + fail-on-cache-miss: true + key: ${{ needs.build.outputs.cache-key }} + - name: Login to GHCR dot IO + uses: docker/login-action@v2 + with: + registry: ghcr.io + username: ${{ github.actor }} + password: ${{ secrets.GITHUB_TOKEN }} + - name: Load and push + run: + docker load -i layer/image.tar + docker push chipsalliance/t1:latest