Change WAR to JAR file upload (#14) #78
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# Copyright Jiaqi Liu | |
--- | |
name: CI/CD | |
"on": | |
pull_request: | |
push: | |
branches: | |
- master | |
jobs: | |
cancel-previous: | |
name: Cancel Previous Runs In Order to Allocate Action Resources Immediately for Current Run | |
runs-on: ubuntu-latest | |
steps: | |
- name: Cancel previous | |
uses: styfle/cancel-workflow-action@0.10.1 | |
if: ${{github.ref != 'refs/head/master'}} | |
with: | |
access_token: ${{ github.token }} | |
test-example: | |
uses: ./.github/workflows/test-plugin-example.yml | |
# referencing release.yml - get-go-version | |
get-go-version: | |
runs-on: ubuntu-latest | |
outputs: | |
go-version: ${{ steps.get-go-version.outputs.go-version }} | |
steps: | |
- uses: actions/checkout@8e5e7e5ab8b370d6c329ec480221332ada57f0ab # v3.5.2 | |
- name: 'Determine Go version' | |
id: get-go-version | |
run: | | |
echo "Found Go $(cat .go-version)" | |
echo "go-version=$(cat .go-version)" >> $GITHUB_OUTPUT | |
gorelease-config-check: | |
name: Checking if gorelease configuration is valid | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v3 | |
- run: | | |
echo 'deb [trusted=yes] https://repo.goreleaser.com/apt/ /' | sudo tee /etc/apt/sources.list.d/goreleaser.list | |
sudo apt update | |
sudo apt install goreleaser -y | |
goreleaser check .goreleaser.yml | |
tests: | |
name: Go Tests | |
needs: [test-example, get-go-version, gorelease-config-check] | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v3 | |
- uses: actions/setup-go@93397bea11091df50f3d7e59dc26a7711a8bcfbe # v4.1.0 | |
with: | |
go-version: ${{ needs.get-go-version.outputs.go-version }} | |
- run: | | |
make build | |
make test | |
acceptance-tests: | |
name: Packer Plugin Acceptance Tests | |
needs: tests | |
outputs: | |
outcome: ${{ job.status }} | |
continue-on-error: true | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v3 | |
- uses: actions/setup-go@93397bea11091df50f3d7e59dc26a7711a8bcfbe # v4.1.0 | |
with: | |
go-version: ${{ needs.get-go-version.outputs.go-version }} | |
- name: Install Packer | |
uses: hashicorp/setup-packer@main | |
- name: Build plugin | |
run: go build -ldflags="-X github.com/paion-data/packer-plugin-paion-data/version.VersionPrerelease=dev" -o packer-plugin-paion-data | |
- name: Install dependencies | |
run: packer plugins install github.com/hashicorp/docker | |
- name: Install plugin | |
run: packer plugins install --path packer-plugin-paion-data github.com/paion-data/paion-data | |
- name: Run all acceptance tests | |
run: PACKER_ACC=1 go test -count 1 -v ./... -timeout=120m | |
release: | |
needs: [acceptance-tests] | |
if: ${{ github.ref == 'refs/heads/master' && github.repository != 'QubitPi/hashicorp-packer-plugin-scaffolding' }} | |
uses: ./.github/workflows/release.yml | |
secrets: inherit |