diff --git a/.github/workflows/releaser.yml b/.github/workflows/releaser.yml new file mode 100644 index 0000000..99d8034 --- /dev/null +++ b/.github/workflows/releaser.yml @@ -0,0 +1,57 @@ +on: + push: + tags: + - "v*" + +name: Release +defaults: + run: + shell: bash +jobs: + lint: + name: Code Analysis & Tests + uses: planxnx/ethereum-wallet-generator/.github/workflows/code-analysis.yml@main + release: + name: Create Release + runs-on: "ubuntu-latest" + needs: test + strategy: + matrix: + # List of GOOS and GOARCH pairs from `go tool dist list` + goosarch: + - "darwin/arm64" + # - "darwin/amd64" + # - "windows/amd64" + # - "linux/amd64" + # - "linux/arm64" + steps: + - name: Checkout code + uses: actions/checkout@v3 + with: + fetch-depth: 0 + - uses: actions/setup-go@v3 + with: + go-version-file: "go.mod" + cache: true # caching and restoring go modules and build outputs. + - name: Prepare OS and Arch + run: | + GOOSARCH=${{matrix.goosarch}} + GOOS=${GOOSARCH%/*} + GOARCH=${GOOSARCH#*/} + BINARY_NAME=${{github.repository}}-$GOOS-$GOARCH + echo "BINARY_NAME=$BINARY_NAME" >> $GITHUB_ENV + echo "GOOS=$GOOS" >> $GITHUB_ENV + echo "GOARCH=$GOARCH" >> $GITHUB_ENV + - name: Build + run: | + go build -o "$BINARY_NAME" -v + - name: Release Notes + run: git log $(git describe HEAD~ --tags --abbrev=0)..HEAD --pretty='format:* %h %s%n * %an <%ae>' --no-merges >> ".github/RELEASE-TEMPLATE.md" + - name: Release with Notes + uses: softprops/action-gh-release@v1 + with: + body_path: ".github/RELEASE-TEMPLATE.md" + draft: true + files: ${{env.BINARY_NAME}} + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}