diff --git a/.github/workflows/build-test.yml b/.github/workflows/build-test.yml index f38a786..3d49321 100644 --- a/.github/workflows/build-test.yml +++ b/.github/workflows/build-test.yml @@ -1,36 +1,28 @@ name: Run Tests - on: push: branches: - 'develop' - pull_request: branches: - 'develop' - jobs: build: strategy: fail-fast: false - matrix: os: [ ubuntu-20.04 ] - go: [ 1.15.6 ] + go: [ '^1.15', '^1.16' ] goos: [ linux ] goarch: [ amd64, arm64 ] - runs-on: ${{ matrix.os }} - steps: - name: Code Checkout uses: actions/checkout@v2 - - name: Setup Go v${{ matrix.go }} uses: actions/setup-go@v2 with: go-version: ${{ matrix.go }} - - name: Print Environment id: env run: | @@ -44,7 +36,6 @@ jobs: echo "::set-output name=version_tag::${GITHUB_REF/refs\/tags\//}" echo "::set-output name=short_sha::$(git rev-parse --short HEAD)" echo "::set-output name=go_cache::$(go env GOCACHE)" - - name: Build Cache uses: actions/cache@v2 with: @@ -52,11 +43,9 @@ jobs: key: ${{ runner.os }}-${{ matrix.go }}-go-${{ hashFiles('**/go.sum') }} restore-keys: | ${{ runner.os }}-${{ matrix.go }}-go - - name: Get Dependencies run: | go get -v -t -d ./... - - name: Build env: GOOS: ${{ matrix.goos }} @@ -67,13 +56,11 @@ jobs: go build -v -trimpath -ldflags="-s -w -X ${SRC_PATH}/system.Version=dev-${GIT_COMMIT:0:7}" -o build/wings_${{ matrix.goos }}_${{ matrix.goarch }} wings.go upx build/wings_${{ matrix.goos }}_${{ matrix.goarch }} chmod +x build/wings_${{ matrix.goos }}_${{ matrix.goarch }} - - name: Test run: go test ./... - - name: Upload Artifact uses: actions/upload-artifact@v2 - if: ${{ github.ref == 'refs/heads/develop' || github.event_name == 'pull_request' }} + if: ${{ matrix.go == '^1.15' && (github.ref == 'refs/heads/develop' || github.event_name == 'pull_request') }} with: name: wings_${{ matrix.goos }}_${{ matrix.goarch }} path: build/wings_${{ matrix.goos }}_${{ matrix.goarch }} diff --git a/.github/workflows/codeql-analysis.yml b/.github/workflows/codeql-analysis.yml index 7e573f7..2602fd8 100644 --- a/.github/workflows/codeql-analysis.yml +++ b/.github/workflows/codeql-analysis.yml @@ -1,5 +1,4 @@ name: CodeQL - on: push: branches: diff --git a/.github/workflows/docker.yml b/.github/workflows/docker.yml index 8ed484a..04f8c53 100644 --- a/.github/workflows/docker.yml +++ b/.github/workflows/docker.yml @@ -1,5 +1,4 @@ name: Publish Docker Image - on: push: branches: @@ -7,46 +6,37 @@ on: tags: - 'v*' - jobs: push: name: Push runs-on: ubuntu-20.04 - # Always run against a tag, even if the commit into the tag has [docker skip] within the commit message. if: "!contains(github.ref, 'develop') || (!contains(github.event.head_commit.message, 'skip docker') && !contains(github.event.head_commit.message, 'docker skip'))" - steps: - name: Code Checkout uses: actions/checkout@v2 - - name: Docker Meta id: docker_meta uses: crazy-max/ghaction-docker-meta@v1 with: images: ghcr.io/pterodactyl/wings - - name: Set up QEMU uses: docker/setup-qemu-action@v1 - - name: Install buildx uses: docker/setup-buildx-action@v1 with: version: v0.5.1 - - name: Login to GitHub Container Registry uses: docker/login-action@v1 with: registry: ghcr.io username: ${{ github.repository_owner }} password: ${{ secrets.REGISTRY_TOKEN }} - - name: Get Build Information id: build_info run: | echo "::set-output name=version_tag::${GITHUB_REF/refs\/tags\//}" echo "::set-output name=short_sha::$(git rev-parse --short HEAD)" - - name: Release Production Build uses: docker/build-push-action@v2 if: "!contains(github.ref, 'develop')" @@ -56,7 +46,6 @@ jobs: labels: ${{ steps.docker_meta.outputs.labels }} push: true tags: ${{ steps.docker_meta.outputs.tags }} - - name: Release Development Build uses: docker/build-push-action@v2 if: "contains(github.ref, 'develop')" diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index b5f59e3..dd60581 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -1,51 +1,41 @@ name: Create Release - on: push: tags: - 'v*' - jobs: release: runs-on: ubuntu-20.04 - steps: - name: Code Checkout uses: actions/checkout@v2 - - uses: actions/setup-go@v2 with: - go-version: '1.15.6' - + go-version: '^1.15' - name: Build env: REF: ${{ github.ref }} run: | CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -ldflags="-s -w -X github.com/pterodactyl/wings/system.Version=${REF:11}" -o build/wings_linux_amd64 -v wings.go CGO_ENABLED=0 GOOS=linux GOARCH=arm64 go build -ldflags="-s -w -X github.com/pterodactyl/wings/system.Version=${REF:11}" -o build/wings_linux_arm64 -v wings.go - - name: Test run: go test ./... - - name: Compress binary and make it executable run: | upx build/wings_linux_amd64 && chmod +x build/wings_linux_amd64 upx build/wings_linux_arm64 && chmod +x build/wings_linux_arm64 - - name: 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: | SUM=`cd build && sha256sum wings_linux_amd64` SUM2=`cd build && sha256sum wings_linux_arm64` echo -e "\n#### SHA256 Checksum\n\`\`\`\n$SUM\n$SUM2\n\`\`\`\n" >> ./RELEASE_CHANGELOG echo -e "$SUM\n$SUM2" > checksums.txt - - name: Create release branch env: REF: ${{ github.ref }} @@ -59,7 +49,6 @@ jobs: git add system/const.go git commit -m "bump version for release" git push - - name: Create Release id: create_release uses: actions/create-release@v1 @@ -71,17 +60,15 @@ jobs: body_path: ./RELEASE_CHANGELOG draft: true prerelease: ${{ contains(github.ref, 'beta') || contains(github.ref, 'alpha') }} - - name: Upload amd64 Binary uses: actions/upload-release-asset@v1 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: - upload_url: ${{ steps.create_release.outputs.upload_url }} + upload_url: ${{ steps.create_release.outputs.upload_url }} asset_path: build/wings_linux_amd64 asset_name: wings_linux_amd64 asset_content_type: application/octet-stream - - name: Upload arm64 Binary uses: actions/upload-release-asset@v1 env: @@ -91,13 +78,12 @@ jobs: asset_path: build/wings_linux_arm64 asset_name: wings_linux_arm64 asset_content_type: application/octet-stream - - name: Upload checksum uses: actions/upload-release-asset@v1 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: - upload_url: ${{ steps.create_release.outputs.upload_url }} + upload_url: ${{ steps.create_release.outputs.upload_url }} asset_path: ./checksums.txt asset_name: checksums.txt asset_content_type: text/plain