diff --git a/.drone.yml b/.drone.yml index e7b364163e..9d86283f29 100644 --- a/.drone.yml +++ b/.drone.yml @@ -49,28 +49,6 @@ steps: event: - push - tag - -- name: github_binary_release - image: plugins/github-release - settings: - api_key: - from_secret: github_token - prerelease: true - checksum: - - sha256 - checksum_file: CHECKSUMsum-amd64.txt - checksum_flatten: true - files: - - "dist/artifacts/*" - when: - instance: - - drone-publish.k3s.io - ref: - - refs/head/master - - refs/tags/* - event: - - tag - - name: docker-publish image: plugins/docker settings: @@ -189,27 +167,6 @@ steps: - name: docker path: /var/run/docker.sock -- name: github_binary_release - image: plugins/github-release - settings: - api_key: - from_secret: github_token - prerelease: true - checksum: - - sha256 - checksum_file: CHECKSUMsum-arm64.txt - checksum_flatten: true - files: - - "dist/artifacts/*" - when: - instance: - - drone-publish.k3s.io - ref: - - refs/head/master - - refs/tags/* - event: - - tag - - name: docker-publish image: plugins/docker settings: @@ -304,28 +261,6 @@ steps: volumes: - name: docker path: /var/run/docker.sock - -- name: github_binary_release - image: plugins/github-release:linux-arm - settings: - api_key: - from_secret: github_token - prerelease: true - checksum: - - sha256 - checksum_file: CHECKSUMsum-arm.txt - checksum_flatten: true - files: - - "dist/artifacts/*" - when: - instance: - - drone-publish.k3s.io - ref: - - refs/head/master - - refs/tags/* - event: - - tag - - name: docker-publish image: plugins/docker:linux-arm settings: diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 7ae7ee913a..49db1c068d 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -49,7 +49,7 @@ jobs: username: ${{ github.repository_owner }} password: ${{ secrets.GITHUB_TOKEN }} - - name: COnfigure image tags + - name: Configure image tags id: tag_config run: | TAG=${GITHUB_REF#refs/tags/} @@ -71,7 +71,8 @@ jobs: id: meta uses: docker/metadata-action@v5 with: - images: ghcr.io/${{ github.repository_owner }}/k3s + images: | + ghcr.io/${{ github.repository_owner }}/k3s flavor: latest=false tags: ${{ steps.tag_config.outputs.tag_spec }} @@ -99,3 +100,96 @@ jobs: build-args: | DRONE_TAG=${{ github.ref_name }} + upload-release-airgap: + name: Build Airgap Pkg (${{ matrix.arch }}) + runs-on: ubuntu-latest # Runs on standard runner, docker pulls with --platform + permissions: + contents: write # Needed to update release with assets + strategy: + matrix: + arch: [amd64, arm64, arm] + + steps: + - name: Checkout code + uses: actions/checkout@v4 + + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v3 + + - name: Install Dependencies + run: sudo apt-get update -y && sudo apt-get install -y zstd pigz + + - name: Create Airgap Package (${{ matrix.arch }}) + run: | + mkdir -p ./dist/artifacts + ./scripts/package-airgap ${{ matrix.arch }} + + - name: Caculate Airgap sha256sum + run: sha256sum dist/artifacts/k3s-airgap-images-${{ matrix.arch }}* | sed 's|dist/artifacts/||' > dist/artifacts/k3s-airgap-images-${{ matrix.arch }}.sha256sum + + - name: Upload Airgap sha256sum + uses: actions/upload-artifact@v4 + with: + name: k3s-airgap-images-${{ matrix.arch }}.sha256sum + path: dist/artifacts/k3s-airgap-images-${{ matrix.arch }}.sha256sum + + - name: Upload k3s-images.txt to Release + uses: softprops/action-gh-release@v2 + # This action is recommended by GITHUB, they don't support a first party action for releases + # See https://github.com/actions/create-release?tab=readme-ov-file#github-action---releases-api + if: ${{ matrix.arch == 'amd64' }} + with: + files: | + dist/artifacts/k3s-images.txt + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + + - name: Upload Airgap Assets to Release + uses: softprops/action-gh-release@v2 + with: + files: | + dist/artifacts/k3s-airgap-images* + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + + upload-release-assets: + name: Prepare and Upload Release Assets + permissions: + contents: write # Needed to update release with assets + runs-on: ubuntu-latest + needs: [build-amd64, build-arm64, build-arm, upload-release-airgap] + steps: + - name: Checkout code + uses: actions/checkout@v4 + + - name: "Download Binaries and Airgap sha256sum" + uses: actions/download-artifact@v4 + with: + pattern: k3s* + path: ./dist/artifacts + merge-multiple: true + + - name: "Combine and format sha256sum files" + run: | + for arch in amd64 arm64 arm; do + output_file="./dist/artifacts/sha256sum-${arch}.txt" + cat ./dist/artifacts/k3s-airgap-images-$arch*.sha256sum >> "$output_file" + rm ./dist/artifacts/k3s-airgap-images-$arch*.sha256sum + if [[ "$arch" == "amd64" ]]; then + cat ./dist/artifacts/k3s.sha256sum >> "$output_file" + rm ./dist/artifacts/k3s.sha256sum # Remove the original file to avoid uploading it + else + cat ./dist/artifacts/k3s-${arch}.sha256sum >> "$output_file" + rm ./dist/artifacts/k3s-${arch}.sha256sum # Remove the original file to avoid uploading it + fi + done + + - name: Upload Assets to Release + uses: softprops/action-gh-release@v2.2.1 + with: + files: | + dist/artifacts/k3s* + dist/artifacts/sha256sum* + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} +