Skip to content

fix this please

fix this please #19

Workflow file for this run

name: Release Dry Run
on:
push:
branches: [ fix_release_job_cgo_issue ]
workflow_dispatch:
inputs:
note:
description: "Build all release artifacts without publishing (admins/maintainers only)"
required: false
default: ""
jobs:
check-permissions:
name: Check permissions
runs-on: ubuntu-latest
outputs:
allowed: ${{ steps.check.outputs.allowed }}
level: ${{ steps.check.outputs.level }}
steps:
- name: Check collaborator permission level
id: check
uses: actions/github-script@v7
with:
script: |
const {owner, repo} = context.repo;
const username = context.actor;
const resp = await github.rest.repos.getCollaboratorPermissionLevel({ owner, repo, username });
const perm = resp.data.permission; // 'admin' | 'maintain' | 'write' | 'triage' | 'read' | 'none'
const allowed = ['admin','maintain'].includes(perm);
core.info(`Actor ${username} permission: ${perm}. Allowed: ${allowed}`);
core.setOutput('allowed', allowed ? 'true' : 'false');
core.setOutput('level', perm);
release-dry-run:
name: GoReleaser (dry run)
needs: check-permissions
if: needs.check-permissions.outputs.allowed == 'true'
strategy:
matrix:
os: [ubuntu-latest, macos-latest]
runs-on: ${{ matrix.os }}
permissions:
contents: read
steps:
- name: Check out code
uses: actions/checkout@v4
- name: Install Go
uses: actions/setup-go@v5
with:
go-version: 1.21.x
- name: Install cross toolchains and libc headers (Linux CGO)
if: runner.os == 'Linux'
run: |
sudo apt-get update
sudo apt-get install -y \
gcc-arm-linux-gnueabihf gcc-arm-linux-gnueabi gcc-aarch64-linux-gnu \
libc6-dev-armhf-cross libc6-dev-arm64-cross \
linux-libc-dev-armhf-cross linux-libc-dev-arm64-cross
- name: Run GoReleaser build [Linux]
if: runner.os == 'Linux'
uses: goreleaser/goreleaser-action@v5
with:
distribution: goreleaser
version: v2.4.0
args: build --verbose --snapshot --clean --config .github/goreleaser.linuxwin.yml
env:
CGO_ENABLED: 1
- name: Set up MSVC build tools (Windows)
if: runner.os == 'Windows'
uses: ilammy/msvc-dev-cmd@v1
- name: Run GoReleaser build [Windows]
if: runner.os == 'Windows'
uses: goreleaser/goreleaser-action@v5
with:
distribution: goreleaser
version: v2.4.0
args: build --verbose --snapshot --clean --config .github/goreleaser.windows.yml
env:
CGO_ENABLED: 1
CC: cl.exe
- name: Run GoReleaser build [Darwin]
if: runner.os == 'macOS'
uses: goreleaser/goreleaser-action@v5
with:
distribution: goreleaser
version: v2.4.0
args: build --verbose --snapshot --clean --config .github/goreleaser.darwin.yml
env:
CGO_ENABLED: 1
deny:
name: Deny unauthorized
needs: check-permissions
if: needs.check-permissions.outputs.allowed != 'true'
runs-on: ubuntu-latest
steps:
- name: Stop
run: |
echo "User '${{ github.actor }}' lacks required permission (need admin or maintain). Current: ${{ needs.check-permissions.outputs.level }}"
exit 1