Skip to content

Commit

Permalink
Fix import script github action (#136)
Browse files Browse the repository at this point in the history
  • Loading branch information
ichung08 authored Aug 21, 2024
1 parent b5b5f97 commit bf6a998
Show file tree
Hide file tree
Showing 2 changed files with 66 additions and 83 deletions.
91 changes: 66 additions & 25 deletions .github/workflows/build-release-import-script.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
name: Build and Release Import Script
name: Build and Release Astro Import Script

on:
push:
Expand All @@ -13,19 +13,35 @@ jobs:
name: Build
runs-on: ubuntu-latest
timeout-minutes: 5
strategy:
matrix:
goos: [ linux, windows, darwin ]
goarch: [ amd64, arm64 ]
steps:
- uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6
- uses: actions/setup-go@cdcb36043654635271a94b9a6d1392de5bb323a7 # v5.0.1
with:
go-version-file: 'go.mod'
cache: true
- run: go mod download
- run: go build -v -o terraform-import-script ./import/import_script.go
- name: Upload Terraform import script artifact
- name: Get version
id: get_version
run: echo "VERSION=${GITHUB_REF#refs/tags/import/}" >> $GITHUB_OUTPUT
- name: Build
env:
GOOS: ${{ matrix.goos }}
GOARCH: ${{ matrix.goarch }}
run: |
output_name="terraform-provider-astro-import-script_${{ steps.get_version.outputs.VERSION }}_${{ matrix.goos }}_${{ matrix.goarch }}"
if [ "${{ matrix.goos }}" = "windows" ]; then
output_name="${output_name}.exe"
fi
go build -o "${output_name}" ./import/import_script.go
- name: Upload artifact
uses: actions/upload-artifact@v3
with:
name: terraform-import-script
path: terraform-import-script
name: binaries
path: terraform-provider-astro-import-script_*

lint:
name: Lint
Expand All @@ -40,30 +56,55 @@ jobs:
- run: go vet ./import/import_script.go
- run: make validate-fmt

goreleaser:
release:
name: Create Release
needs: [build, lint]
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6
- uses: actions/setup-go@cdcb36043654635271a94b9a6d1392de5bb323a7 # v5.0.1
with:
go-version-file: 'go.mod'
cache: true
- name: Import GPG key
uses: crazy-max/ghaction-import-gpg@v5
id: import_gpg
with:
gpg_private_key: ${{ secrets.GPG_PRIVATE_KEY }}
passphrase: ${{ secrets.PASSPHRASE }}
- name: Run GoReleaser
uses: goreleaser/goreleaser-action@5742e2a039330cbb23ebf35f046f814d4c6ff811 # v5.1.0
- name: Checkout code
uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6

- name: Download artifacts
uses: actions/download-artifact@v3
with:
args: release --clean --config .goreleaser.import.yml
name: binaries

- name: Get the version
id: get_version
run: echo "VERSION=${GITHUB_REF#refs/tags/}" >> $GITHUB_OUTPUT

- name: Create Release
id: create_release
uses: actions/create-release@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
GPG_FINGERPRINT: ${{ steps.import_gpg.outputs.fingerprint }}
- name: Upload GoReleaser artifacts
uses: actions/upload-artifact@v3
with:
name: goreleaser-artifacts
path: dist/*
tag_name: ${{ steps.get_version.outputs.VERSION }}
release_name: Release ${{ steps.get_version.outputs.VERSION }}
draft: false
prerelease: false

- name: Upload Release Assets
uses: actions/github-script@v7
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
script: |
const fs = require('fs').promises;
const { repo: { owner, repo }, sha } = context;
const release = await github.rest.repos.getReleaseByTag({
owner,
repo,
tag: '${{ steps.get_version.outputs.VERSION }}'
});
const files = await fs.readdir('.');
for (const file of files) {
if (file.startsWith('terraform-provider-astro-import-script_')) {
await github.rest.repos.uploadReleaseAsset({
owner,
repo,
release_id: release.data.id,
name: file,
data: await fs.readFile(file)
});
}
}
58 changes: 0 additions & 58 deletions .goreleaser.import.yml

This file was deleted.

0 comments on commit bf6a998

Please sign in to comment.