From 7d93f1566c529173915f050c033936ee89c35773 Mon Sep 17 00:00:00 2001 From: Matthew Penner Date: Sun, 4 Dec 2022 17:40:17 -0700 Subject: [PATCH] ci: overhaul workflows --- .github/workflows/docker.yaml | 34 ++++++++++++++++++++-------------- .github/workflows/release.yaml | 14 +++++--------- 2 files changed, 25 insertions(+), 23 deletions(-) diff --git a/.github/workflows/docker.yaml b/.github/workflows/docker.yaml index 0e1a2b77e..ff3c1aadd 100644 --- a/.github/workflows/docker.yaml +++ b/.github/workflows/docker.yaml @@ -3,8 +3,10 @@ name: Publish Docker Image on: push: branches: - - "develop" - - "release/v*" + - develop + release: + types: + - published jobs: push: @@ -17,45 +19,49 @@ jobs: - name: Code Checkout uses: actions/checkout@v3 - - name: Docker Metadata - uses: docker/metadata-action@v4 + - name: Docker metadata id: docker_meta + uses: docker/metadata-action@v4 with: images: ghcr.io/pterodactyl/panel + tags: | + type=raw,value=latest,enable=${{ github.event_name == 'release' && github.event.action == 'published' && github.event.release.prerelease == false }} + type=ref,event=tag + type=ref,event=branch - name: Setup QEMU uses: docker/setup-qemu-action@v2 - - name: Setup Docker Buildx + - name: Setup Docker buildx uses: docker/setup-buildx-action@v2 - - name: Docker Login + - name: Login to GitHub Container Registry uses: docker/login-action@v2 with: registry: ghcr.io username: ${{ github.repository_owner }} password: ${{ secrets.REGISTRY_TOKEN }} - - name: Release production build - uses: docker/build-push-action@v2 - if: "contains(github.ref, 'release/v')" + - name: Build and Push (tag) + uses: docker/build-push-action@v3 + if: "github.event_name == 'release' && github.event.action == 'published'" with: context: . file: ./Dockerfile push: true platforms: linux/amd64,linux/arm64 - tags: ${{ steps.docker_meta.outputs.tags }} labels: ${{ steps.docker_meta.outputs.labels }} + tags: ${{ steps.docker_meta.outputs.tags }} - - name: Release development build - uses: docker/build-push-action@v2 - if: "contains(github.ref, 'develop')" + - name: Build and Push (develop) + uses: docker/build-push-action@v3 + if: "github.event_name == 'push' && contains(github.ref, 'develop')" with: context: . file: ./Dockerfile push: ${{ github.event_name != 'pull_request' }} platforms: linux/amd64,linux/arm64 - tags: ${{ steps.docker_meta.outputs.tags }} labels: ${{ steps.docker_meta.outputs.labels }} + tags: ${{ steps.docker_meta.outputs.tags }} cache-from: type=gha cache-to: type=gha,mode=max diff --git a/.github/workflows/release.yaml b/.github/workflows/release.yaml index 09ab86410..3b5baa4c3 100644 --- a/.github/workflows/release.yaml +++ b/.github/workflows/release.yaml @@ -10,7 +10,7 @@ jobs: name: Release runs-on: ubuntu-20.04 steps: - - name: Code Checkout + - name: Code checkout uses: actions/checkout@v3 - name: Setup Node @@ -45,12 +45,10 @@ jobs: tar -czf panel.tar.gz * .env.example .eslintignore .eslintrc.js - name: Extract changelog - id: extract_changelog env: REF: ${{ github.ref }} run: | sed -n "/^## ${REF:10}/,/^## /{/^## /b;p}" CHANGELOG.md > ./RELEASE_CHANGELOG - echo ::set-output name=version_name::`sed -nr "s/^## (${REF:10} .*)$/\1/p" CHANGELOG.md` - name: Create checksum and add to changelog run: | @@ -58,17 +56,15 @@ jobs: echo -e "\n#### SHA256 Checksum\n\n\`\`\`\n$SUM\n\`\`\`\n" >> ./RELEASE_CHANGELOG echo $SUM > checksum.txt - - name: Create Release + - name: Create release id: create_release - uses: actions/create-release@v1 + uses: softprops/action-gh-release@v1 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: - tag_name: ${{ github.ref }} - release_name: ${{ steps.extract_changelog.outputs.version_name }} - body_path: ./RELEASE_CHANGELOG draft: true - prerelease: ${{ contains(github.ref, 'beta') || contains(github.ref, 'alpha') }} + prerelease: ${{ contains(github.ref, 'rc') || contains(github.ref, 'beta') || contains(github.ref, 'alpha') }} + body_path: ./RELEASE_CHANGELOG - name: Upload release archive id: upload-release-archive