diff --git a/.gitea/workflows/release-nightly.yml b/.gitea/workflows/release-nightly.yml deleted file mode 100644 index 71420ed..0000000 --- a/.gitea/workflows/release-nightly.yml +++ /dev/null @@ -1,85 +0,0 @@ ---- -name: release-nightly - -on: - workflow_dispatch: - push: - branches: - - 'main' - tags: - - '*' - -env: - DOCKER_ORG: gitea - DOCKER_LATEST: nightly - -jobs: - goreleaser: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 - with: - fetch-depth: 0 - - uses: actions/setup-go@v5 - with: - go-version-file: "go.mod" - - name: goreleaser - uses: goreleaser/goreleaser-action@v6 - with: - distribution: goreleaser-pro - args: release --nightly - env: - GORELEASER_KEY: ${{ secrets.GORELEASER_KEY }} - AWS_REGION: ${{ secrets.AWS_REGION }} - AWS_ACCESS_KEY_ID: ${{ secrets.AWS_KEY_ID }} - AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }} - S3_REGION: ${{ secrets.AWS_REGION }} - S3_BUCKET: ${{ secrets.AWS_BUCKET }} - GORELEASER_FORCE_TOKEN: "gitea" - GITEA_TOKEN: ${{ secrets.GITHUB_TOKEN }} - - release-image: - runs-on: ubuntu-latest - strategy: - matrix: - variant: - - target: basic - tag_suffix: "" - - target: dind - tag_suffix: "-dind" - - target: dind-rootless - tag_suffix: "-dind-rootless" - - steps: - - name: Checkout - uses: actions/checkout@v5 - with: - fetch-depth: 0 # all history for all branches and tags - - - name: Set up QEMU - uses: docker/setup-qemu-action@v3 - - - name: Set up Docker BuildX - uses: docker/setup-buildx-action@v3 - - - name: Login to DockerHub - uses: docker/login-action@v3 - with: - username: ${{ secrets.DOCKER_USERNAME }} - password: ${{ secrets.DOCKER_PASSWORD }} - - - name: Echo the tag - run: echo "${{ env.DOCKER_ORG }}/act_runner:nightly${{ matrix.variant.tag_suffix }}" - - - name: Build and push - uses: docker/build-push-action@v6 - with: - context: . - file: ./Dockerfile - target: ${{ matrix.variant.target }} - platforms: | - linux/amd64 - linux/arm64 - push: true - tags: | - ${{ env.DOCKER_ORG }}/act_runner:nightly${{ matrix.variant.tag_suffix }} diff --git a/.gitea/workflows/release-tag.yml b/.gitea/workflows/release-tag.yml index 7735f7e..f15f5f8 100644 --- a/.gitea/workflows/release-tag.yml +++ b/.gitea/workflows/release-tag.yml @@ -1,111 +1,75 @@ -name: release-tag +name: Release on: push: tags: - - "*" + - 'v*' jobs: - goreleaser: + build: runs-on: ubuntu-latest + strategy: + matrix: + include: + - goos: linux + goarch: amd64 + - goos: linux + goarch: arm64 + - goos: darwin + goarch: amd64 + - goos: darwin + goarch: arm64 + - goos: windows + goarch: amd64 steps: - uses: actions/checkout@v4 with: - fetch-depth: 0 # all history for all branches and tags + fetch-depth: 0 + - uses: actions/setup-go@v5 with: - go-version-file: "go.mod" - - name: Import GPG key - id: import_gpg - uses: crazy-max/ghaction-import-gpg@v6 - with: - gpg_private_key: ${{ secrets.GPG_PRIVATE_KEY }} - passphrase: ${{ secrets.PASSPHRASE }} - fingerprint: CC64B1DB67ABBEECAB24B6455FC346329753F4B0 - - name: goreleaser - uses: goreleaser/goreleaser-action@v6 - with: - distribution: goreleaser-pro - args: release - env: - GORELEASER_KEY: ${{ secrets.GORELEASER_KEY }} - AWS_REGION: ${{ secrets.AWS_REGION }} - AWS_ACCESS_KEY_ID: ${{ secrets.AWS_KEY_ID }} - AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }} - S3_REGION: ${{ secrets.AWS_REGION }} - S3_BUCKET: ${{ secrets.AWS_BUCKET }} - GORELEASER_FORCE_TOKEN: "gitea" - GITEA_TOKEN: ${{ secrets.GITHUB_TOKEN }} - GPG_FINGERPRINT: ${{ steps.import_gpg.outputs.fingerprint }} - release-image: - runs-on: ubuntu-latest - container: - image: catthehacker/ubuntu:act-latest - env: - DOCKER_ORG: gitea - DOCKER_LATEST: latest - steps: - - name: Checkout - uses: actions/checkout@v4 - with: - fetch-depth: 0 # all history for all branches and tags + go-version-file: 'go.mod' - - name: Set up QEMU - uses: docker/setup-qemu-action@v3 - - - name: Set up Docker BuildX - uses: docker/setup-buildx-action@v3 - - - name: Login to DockerHub - uses: docker/login-action@v3 - with: - username: ${{ secrets.DOCKER_USERNAME }} - password: ${{ secrets.DOCKER_PASSWORD }} - - - name: Get Meta - id: meta + - name: Build run: | - echo REPO_NAME=$(echo ${GITHUB_REPOSITORY} | awk -F"/" '{print $2}') >> $GITHUB_OUTPUT - echo REPO_VERSION=${GITHUB_REF_NAME#v} >> $GITHUB_OUTPUT + VERSION=${GITHUB_REF_NAME#v} + EXT="" + if [ "${{ matrix.goos }}" = "windows" ]; then + EXT=".exe" + fi + CGO_ENABLED=0 GOOS=${{ matrix.goos }} GOARCH=${{ matrix.goarch }} \ + go build -ldflags "-X gitea.com/gitea/act_runner/internal/pkg/ver.version=${VERSION}" \ + -o act_runner-${{ matrix.goos }}-${{ matrix.goarch }}${EXT} + env: + GOPRIVATE: git.marketally.com - - name: Build and push - uses: docker/build-push-action@v5 + - name: Upload artifact + uses: actions/upload-artifact@v3 with: - context: . - file: ./Dockerfile - target: basic - platforms: | - linux/amd64 - linux/arm64 - push: true - tags: | - ${{ env.DOCKER_ORG }}/${{ steps.meta.outputs.REPO_NAME }}:${{ steps.meta.outputs.REPO_VERSION }} - ${{ env.DOCKER_ORG }}/${{ steps.meta.outputs.REPO_NAME }}:${{ env.DOCKER_LATEST }} + name: act_runner-${{ matrix.goos }}-${{ matrix.goarch }} + path: act_runner-* - - name: Build and push dind - uses: docker/build-push-action@v5 - with: - context: . - file: ./Dockerfile - target: dind - platforms: | - linux/amd64 - linux/arm64 - push: true - tags: | - ${{ env.DOCKER_ORG }}/${{ steps.meta.outputs.REPO_NAME }}:${{ steps.meta.outputs.REPO_VERSION }}-dind - ${{ env.DOCKER_ORG }}/${{ steps.meta.outputs.REPO_NAME }}:${{ env.DOCKER_LATEST }}-dind + release: + needs: build + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 - - name: Build and push dind-rootless - uses: docker/build-push-action@v5 + - name: Download all artifacts + uses: actions/download-artifact@v3 with: - context: . - file: ./Dockerfile - target: dind-rootless - platforms: | - linux/amd64 - linux/arm64 - push: true - tags: | - ${{ env.DOCKER_ORG }}/${{ steps.meta.outputs.REPO_NAME }}:${{ steps.meta.outputs.REPO_VERSION }}-dind-rootless - ${{ env.DOCKER_ORG }}/${{ steps.meta.outputs.REPO_NAME }}:${{ env.DOCKER_LATEST }}-dind-rootless + path: artifacts + + - name: Prepare release files + run: | + mkdir -p release + find artifacts -type f -name 'act_runner-*' -exec mv {} release/ \; + cd release && sha256sum * > checksums.txt + + - name: Create Release + uses: softprops/action-gh-release@v1 + with: + files: release/* + generate_release_notes: true + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} diff --git a/.gitea/workflows/test.yml b/.gitea/workflows/test.yml index 1a15bd9..8adb63e 100644 --- a/.gitea/workflows/test.yml +++ b/.gitea/workflows/test.yml @@ -1,20 +1,32 @@ -name: checks +name: CI + on: - - push - - pull_request + push: + branches: [main] + pull_request: + branches: [main] jobs: - lint: - name: check and test + build-and-test: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 + - uses: actions/setup-go@v5 with: go-version-file: 'go.mod' - - name: vet checks + + - name: Vet run: make vet - - name: build + env: + GOPRIVATE: git.marketally.com + + - name: Build run: make build - - name: test + env: + GOPRIVATE: git.marketally.com + + - name: Test run: make test + env: + GOPRIVATE: git.marketally.com