diff --git a/.actions/init/action.yaml b/.actions/init/action.yaml deleted file mode 100644 index 1b16292..0000000 --- a/.actions/init/action.yaml +++ /dev/null @@ -1,21 +0,0 @@ -name: "Initialize" -description: "Install nix & use cachix" - -inputs: - token: - description: "cachix auth token" - required: true - -runs: - using: "composite" - steps: - - name: Install nix - uses: cachix/install-nix-action@v31 - with: - nix_path: nixpkgs=channel:nixos-unstable - - - name: Use cachix - uses: cachix/cachix-action@v16 - with: - name: trevstack - authToken: "${{ inputs.token }}" diff --git a/.actions/push/action.yaml b/.actions/push/action.yaml deleted file mode 100644 index e4b0092..0000000 --- a/.actions/push/action.yaml +++ /dev/null @@ -1,63 +0,0 @@ -name: "Docker Push" -description: "Push to docker registry" - -inputs: - server_url: - required: true - repository: - required: true - tag: - required: true - -runs: - using: "composite" - steps: - - name: Set env - shell: bash - run: | - REGISTRY=$(basename ${{ inputs.server_url }}) - - NR=${{ inputs.repository }} - NAMESPACE="${NR%%/*}" - REPOSITORY="${NR##*/}" - - TAG=${{ inputs.tag }} - VERSION=${TAG#v} - - echo "REGISTRY=${REGISTRY}" >> $GITHUB_ENV - echo "NAMESPACE=${NAMESPACE}" >> $GITHUB_ENV - echo "REPOSITORY=${REPOSITORY}" >> $GITHUB_ENV - echo "VERSION=${VERSION}" >> $GITHUB_ENV - - - name: Push images - shell: bash - run: | - docker image tag $REPOSITORY:$VERSION-amd64 $REGISTRY/$NAMESPACE/$REPOSITORY:$VERSION-amd64 - docker push $REGISTRY/$NAMESPACE/$REPOSITORY:$VERSION-amd64 - - docker image tag $REPOSITORY:$VERSION-arm64 $REGISTRY/$NAMESPACE/$REPOSITORY:$VERSION-arm64 - docker push $REGISTRY/$NAMESPACE/$REPOSITORY:$VERSION-arm64 - - docker image tag $REPOSITORY:$VERSION-arm $REGISTRY/$NAMESPACE/$REPOSITORY:$VERSION-arm - docker push $REGISTRY/$NAMESPACE/$REPOSITORY:$VERSION-arm - - - name: Push manifest - shell: bash - run: | - docker manifest create $REGISTRY/$NAMESPACE/$REPOSITORY:$VERSION \ - $REGISTRY/$NAMESPACE/$REPOSITORY:$VERSION-amd64 \ - $REGISTRY/$NAMESPACE/$REPOSITORY:$VERSION-arm64 \ - $REGISTRY/$NAMESPACE/$REPOSITORY:$VERSION-arm - docker manifest annotate $REGISTRY/$NAMESPACE/$REPOSITORY:$VERSION $REGISTRY/$NAMESPACE/$REPOSITORY:$VERSION-amd64 --arch amd64 - docker manifest annotate $REGISTRY/$NAMESPACE/$REPOSITORY:$VERSION $REGISTRY/$NAMESPACE/$REPOSITORY:$VERSION-arm64 --arch arm64 - docker manifest annotate $REGISTRY/$NAMESPACE/$REPOSITORY:$VERSION $REGISTRY/$NAMESPACE/$REPOSITORY:$VERSION-arm --arch arm - docker manifest push $REGISTRY/$NAMESPACE/$REPOSITORY:$VERSION - - docker manifest create $REGISTRY/$NAMESPACE/$REPOSITORY:latest \ - $REGISTRY/$NAMESPACE/$REPOSITORY:$VERSION-amd64 \ - $REGISTRY/$NAMESPACE/$REPOSITORY:$VERSION-arm64 \ - $REGISTRY/$NAMESPACE/$REPOSITORY:$VERSION-arm - docker manifest annotate $REGISTRY/$NAMESPACE/$REPOSITORY:latest $REGISTRY/$NAMESPACE/$REPOSITORY:$VERSION-amd64 --arch amd64 - docker manifest annotate $REGISTRY/$NAMESPACE/$REPOSITORY:latest $REGISTRY/$NAMESPACE/$REPOSITORY:$VERSION-arm64 --arch arm64 - docker manifest annotate $REGISTRY/$NAMESPACE/$REPOSITORY:latest $REGISTRY/$NAMESPACE/$REPOSITORY:$VERSION-arm --arch arm - docker manifest push $REGISTRY/$NAMESPACE/$REPOSITORY:latest diff --git a/.gitea/workflows/check.yaml b/.gitea/workflows/check.yaml index df22eee..cbf6e89 100644 --- a/.gitea/workflows/check.yaml +++ b/.gitea/workflows/check.yaml @@ -16,8 +16,16 @@ jobs: contains(github.event.head_commit.message, 'Merge pull request') == false steps: - uses: actions/checkout@v4 - - uses: ./.actions/init + + - name: Install nix + uses: cachix/install-nix-action@v31 with: - token: "${{ secrets.CACHIX_AUTH_TOKEN }}" + nix_path: nixpkgs=channel:nixos-unstable + + - name: Use cachix + uses: cachix/cachix-action@v16 + with: + name: trevstack + authToken: "${{ secrets.CACHIX_AUTH_TOKEN }}" - run: nix flake check diff --git a/.gitea/workflows/release.yaml b/.gitea/workflows/release.yaml index 12d4f14..dbc7e47 100644 --- a/.gitea/workflows/release.yaml +++ b/.gitea/workflows/release.yaml @@ -21,9 +21,17 @@ jobs: needs: check steps: - uses: actions/checkout@v4 - - uses: ./.actions/init + + - name: Install nix + uses: cachix/install-nix-action@v31 with: - token: "${{ secrets.CACHIX_AUTH_TOKEN }}" + nix_path: nixpkgs=channel:nixos-unstable + + - name: Use cachix + uses: cachix/cachix-action@v16 + with: + name: trevstack + authToken: "${{ secrets.CACHIX_AUTH_TOKEN }}" - run: > nix build @@ -44,9 +52,17 @@ jobs: needs: release steps: - uses: actions/checkout@v4 - - uses: ./.actions/init + + - name: Install nix + uses: cachix/install-nix-action@v31 with: - token: "${{ secrets.CACHIX_AUTH_TOKEN }}" + nix_path: nixpkgs=channel:nixos-unstable + + - name: Use cachix + uses: cachix/cachix-action@v16 + with: + name: trevstack + authToken: "${{ secrets.CACHIX_AUTH_TOKEN }}" - uses: docker/login-action@v3 with: @@ -60,9 +76,51 @@ jobs: nix build .#trevstack-linux-arm64-image && ./result | docker load nix build .#trevstack-linux-arm-image && ./result | docker load + - name: Set env + shell: bash + run: | + REGISTRY=$(basename ${{ github.server_url }}) + + NR=${{ github.repository }} + NAMESPACE="${NR%%/*}" + REPOSITORY="${NR##*/}" + + TAG=${{ github.ref_name }} + VERSION=${TAG#v} + + echo "REGISTRY=${REGISTRY}" >> $GITHUB_ENV + echo "NAMESPACE=${NAMESPACE}" >> $GITHUB_ENV + echo "REPOSITORY=${REPOSITORY}" >> $GITHUB_ENV + echo "VERSION=${VERSION}" >> $GITHUB_ENV + - name: Push images - uses: ./.actions/push - with: - server_url: ${{ github.server_url }} - repository: ${{ github.repository }} - tag: ${{ github.ref_name }} + shell: bash + run: | + docker image tag $REPOSITORY:$VERSION-amd64 $REGISTRY/$NAMESPACE/$REPOSITORY:$VERSION-amd64 + docker push $REGISTRY/$NAMESPACE/$REPOSITORY:$VERSION-amd64 + + docker image tag $REPOSITORY:$VERSION-arm64 $REGISTRY/$NAMESPACE/$REPOSITORY:$VERSION-arm64 + docker push $REGISTRY/$NAMESPACE/$REPOSITORY:$VERSION-arm64 + + docker image tag $REPOSITORY:$VERSION-arm $REGISTRY/$NAMESPACE/$REPOSITORY:$VERSION-arm + docker push $REGISTRY/$NAMESPACE/$REPOSITORY:$VERSION-arm + + - name: Push manifest + shell: bash + run: | + docker manifest create $REGISTRY/$NAMESPACE/$REPOSITORY:$VERSION \ + $REGISTRY/$NAMESPACE/$REPOSITORY:$VERSION-amd64 \ + $REGISTRY/$NAMESPACE/$REPOSITORY:$VERSION-arm64 \ + $REGISTRY/$NAMESPACE/$REPOSITORY:$VERSION-arm + docker manifest annotate $REGISTRY/$NAMESPACE/$REPOSITORY:$VERSION $REGISTRY/$NAMESPACE/$REPOSITORY:$VERSION-amd64 --arch amd64 + docker manifest annotate $REGISTRY/$NAMESPACE/$REPOSITORY:$VERSION $REGISTRY/$NAMESPACE/$REPOSITORY:$VERSION-arm64 --arch arm64 + docker manifest annotate $REGISTRY/$NAMESPACE/$REPOSITORY:$VERSION $REGISTRY/$NAMESPACE/$REPOSITORY:$VERSION-arm --arch arm + docker manifest push $REGISTRY/$NAMESPACE/$REPOSITORY:$VERSION + + docker manifest create $REGISTRY/$NAMESPACE/$REPOSITORY:latest \ + $REGISTRY/$NAMESPACE/$REPOSITORY:$VERSION-amd64 \ + $REGISTRY/$NAMESPACE/$REPOSITORY:$VERSION-arm64 \ + $REGISTRY/$NAMESPACE/$REPOSITORY:$VERSION-arm + docker manifest annotate $REGISTRY/$NAMESPACE/$REPOSITORY:latest $REGISTRY/$NAMESPACE/$REPOSITORY:$VERSION-amd64 --arch amd64 + docker manifest annotate $REGISTRY/$NAMESPACE/$REPOSITORY:latest $REGISTRY/$NAMESPACE/$REPOSITORY:$VERSION-arm64 --arch arm64 + docker manifest annotate $REGISTRY/$NAMESPACE/$REPOSITORY:latest $REGISTRY/$NAMESPACE/$REPOSITORY:$VERSION-arm --arch arm diff --git a/.gitea/workflows/update.yaml b/.gitea/workflows/update.yaml index e2aed07..b271c3c 100644 --- a/.gitea/workflows/update.yaml +++ b/.gitea/workflows/update.yaml @@ -10,9 +10,17 @@ jobs: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - - uses: ./.actions/init + + - name: Install nix + uses: cachix/install-nix-action@v31 with: - token: "${{ secrets.CACHIX_AUTH_TOKEN }}" + nix_path: nixpkgs=channel:nixos-unstable + + - name: Use cachix + uses: cachix/cachix-action@v16 + with: + name: trevstack + authToken: "${{ secrets.CACHIX_AUTH_TOKEN }}" # https://github.com/actions/checkout/issues/13 - name: Set git config diff --git a/.github/workflows/check.yaml b/.github/workflows/check.yaml index df22eee..cbf6e89 100644 --- a/.github/workflows/check.yaml +++ b/.github/workflows/check.yaml @@ -16,8 +16,16 @@ jobs: contains(github.event.head_commit.message, 'Merge pull request') == false steps: - uses: actions/checkout@v4 - - uses: ./.actions/init + + - name: Install nix + uses: cachix/install-nix-action@v31 with: - token: "${{ secrets.CACHIX_AUTH_TOKEN }}" + nix_path: nixpkgs=channel:nixos-unstable + + - name: Use cachix + uses: cachix/cachix-action@v16 + with: + name: trevstack + authToken: "${{ secrets.CACHIX_AUTH_TOKEN }}" - run: nix flake check diff --git a/.github/workflows/release.yaml b/.github/workflows/release.yaml index 22d588b..4e026a9 100644 --- a/.github/workflows/release.yaml +++ b/.github/workflows/release.yaml @@ -14,9 +14,17 @@ jobs: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - - uses: ./.actions/init + + - name: Install nix + uses: cachix/install-nix-action@v31 with: - token: "${{ secrets.CACHIX_AUTH_TOKEN }}" + nix_path: nixpkgs=channel:nixos-unstable + + - name: Use cachix + uses: cachix/cachix-action@v16 + with: + name: trevstack + authToken: "${{ secrets.CACHIX_AUTH_TOKEN }}" - run: nix flake check @@ -49,9 +57,17 @@ jobs: needs: release steps: - uses: actions/checkout@v4 - - uses: ./.actions/init + + - name: Install nix + uses: cachix/install-nix-action@v31 with: - token: "${{ secrets.CACHIX_AUTH_TOKEN }}" + nix_path: nixpkgs=channel:nixos-unstable + + - name: Use cachix + uses: cachix/cachix-action@v16 + with: + name: trevstack + authToken: "${{ secrets.CACHIX_AUTH_TOKEN }}" - uses: docker/login-action@v3 with: @@ -65,9 +81,51 @@ jobs: nix build .#trevstack-linux-arm64-image && ./result | docker load nix build .#trevstack-linux-arm-image && ./result | docker load + - name: Set env + shell: bash + run: | + REGISTRY=$(basename ${{ github.server_url }}) + + NR=${{ github.repository }} + NAMESPACE="${NR%%/*}" + REPOSITORY="${NR##*/}" + + TAG=${{ github.ref_name }} + VERSION=${TAG#v} + + echo "REGISTRY=${REGISTRY}" >> $GITHUB_ENV + echo "NAMESPACE=${NAMESPACE}" >> $GITHUB_ENV + echo "REPOSITORY=${REPOSITORY}" >> $GITHUB_ENV + echo "VERSION=${VERSION}" >> $GITHUB_ENV + - name: Push images - uses: ./.actions/push - with: - server_url: ghcr.io - repository: ${{ github.repository }} - tag: ${{ github.ref_name }} + shell: bash + run: | + docker image tag $REPOSITORY:$VERSION-amd64 $REGISTRY/$NAMESPACE/$REPOSITORY:$VERSION-amd64 + docker push $REGISTRY/$NAMESPACE/$REPOSITORY:$VERSION-amd64 + + docker image tag $REPOSITORY:$VERSION-arm64 $REGISTRY/$NAMESPACE/$REPOSITORY:$VERSION-arm64 + docker push $REGISTRY/$NAMESPACE/$REPOSITORY:$VERSION-arm64 + + docker image tag $REPOSITORY:$VERSION-arm $REGISTRY/$NAMESPACE/$REPOSITORY:$VERSION-arm + docker push $REGISTRY/$NAMESPACE/$REPOSITORY:$VERSION-arm + + - name: Push manifest + shell: bash + run: | + docker manifest create $REGISTRY/$NAMESPACE/$REPOSITORY:$VERSION \ + $REGISTRY/$NAMESPACE/$REPOSITORY:$VERSION-amd64 \ + $REGISTRY/$NAMESPACE/$REPOSITORY:$VERSION-arm64 \ + $REGISTRY/$NAMESPACE/$REPOSITORY:$VERSION-arm + docker manifest annotate $REGISTRY/$NAMESPACE/$REPOSITORY:$VERSION $REGISTRY/$NAMESPACE/$REPOSITORY:$VERSION-amd64 --arch amd64 + docker manifest annotate $REGISTRY/$NAMESPACE/$REPOSITORY:$VERSION $REGISTRY/$NAMESPACE/$REPOSITORY:$VERSION-arm64 --arch arm64 + docker manifest annotate $REGISTRY/$NAMESPACE/$REPOSITORY:$VERSION $REGISTRY/$NAMESPACE/$REPOSITORY:$VERSION-arm --arch arm + docker manifest push $REGISTRY/$NAMESPACE/$REPOSITORY:$VERSION + + docker manifest create $REGISTRY/$NAMESPACE/$REPOSITORY:latest \ + $REGISTRY/$NAMESPACE/$REPOSITORY:$VERSION-amd64 \ + $REGISTRY/$NAMESPACE/$REPOSITORY:$VERSION-arm64 \ + $REGISTRY/$NAMESPACE/$REPOSITORY:$VERSION-arm + docker manifest annotate $REGISTRY/$NAMESPACE/$REPOSITORY:latest $REGISTRY/$NAMESPACE/$REPOSITORY:$VERSION-amd64 --arch amd64 + docker manifest annotate $REGISTRY/$NAMESPACE/$REPOSITORY:latest $REGISTRY/$NAMESPACE/$REPOSITORY:$VERSION-arm64 --arch arm64 + docker manifest annotate $REGISTRY/$NAMESPACE/$REPOSITORY:latest $REGISTRY/$NAMESPACE/$REPOSITORY:$VERSION-arm --arch arm diff --git a/.github/workflows/update.yaml b/.github/workflows/update.yaml index bcbe204..5b5853a 100644 --- a/.github/workflows/update.yaml +++ b/.github/workflows/update.yaml @@ -14,9 +14,17 @@ jobs: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - - uses: ./.actions/init + + - name: Install nix + uses: cachix/install-nix-action@v31 with: - token: "${{ secrets.CACHIX_AUTH_TOKEN }}" + nix_path: nixpkgs=channel:nixos-unstable + + - name: Use cachix + uses: cachix/cachix-action@v16 + with: + name: trevstack + authToken: "${{ secrets.CACHIX_AUTH_TOKEN }}" # https://github.com/actions/checkout/issues/13 - name: Set git config