Skip to content

encapsulating pathname in batticks to escape spaces in pathnames #467

encapsulating pathname in batticks to escape spaces in pathnames

encapsulating pathname in batticks to escape spaces in pathnames #467

Workflow file for this run

name: Go
on:
push:
branches:
- master
tags:
- 'v*'
pull_request:
jobs:
build:
name: Build
runs-on: ubuntu-latest
steps:
- name: Get the version
if: startsWith(github.ref, 'refs/tags/')
id: get_version
run: echo ::set-output name=VERSION::${GITHUB_REF/refs\/tags\//}
- name: Set up Go 1.13
uses: actions/setup-go@v1
with:
go-version: 1.13
id: go
- name: Check out code into the Go module directory
uses: actions/checkout@v2
- name: Cache dependencies
uses: actions/cache@v2
with:
path: ~/go/pkg/mod
key: ${{ runner.os }}-go-${{ hashFiles('**/go.sum') }}
restore-keys: |
${{ runner.os }}-go-
- name: Get dependencies
run: go get -v -t -d ./...
- name: Test
run: go test ./...
- name: Set Version
if: startsWith(github.ref, 'refs/tags/')
run: |
echo 'package command
const version = "${{ steps.get_version.outputs.VERSION }}"' > command/version.go
- name: Build
run: |
mkdir bin
GOOS=linux GOARCH=amd64 go build -ldflags "-s" -o bin/vermin && \
cd bin && tar czf vermin-${{ steps.get_version.outputs.VERSION }}-linux.tar.gz vermin \
&& rm -rf vermin && cd -
GOOS=darwin GOARCH=amd64 go build -ldflags "-s" -o bin/vermin && \
cd bin && tar czf vermin-${{ steps.get_version.outputs.VERSION }}-darwin.tar.gz vermin \
&& rm -rf vermin && cd -
GOOS=windows GOARCH=amd64 go build -ldflags "-s" -o bin/vermin.exe && \
cd bin && zip vermin-${{ steps.get_version.outputs.VERSION }}-windows.zip vermin.exe \
&& rm -rf vermin.exe && cd -
cd bin
sha256sum vermin-${{ steps.get_version.outputs.VERSION }}-linux.tar.gz > vermin-${{ steps.get_version.outputs.VERSION }}-linux.tar.gz.sha256sum
sha256sum vermin-${{ steps.get_version.outputs.VERSION }}-darwin.tar.gz > vermin-${{ steps.get_version.outputs.VERSION }}-darwin.tar.gz.sha256sum
sha256sum vermin-${{ steps.get_version.outputs.VERSION }}-windows.zip > vermin-${{ steps.get_version.outputs.VERSION }}-windows.zip.sha256sum
cd -
- uses: actions/upload-artifact@master
if: startsWith(github.ref, 'refs/tags/')
with:
name: my-artifacts
path: bin
release:
name: Release
if: startsWith(github.ref, 'refs/tags/')
runs-on: ubuntu-latest
needs: [build]
steps:
- uses: actions/download-artifact@v1
with:
name: my-artifacts
- run: mv my-artifacts/* .
- name: Get the version
id: get_version
run: echo ::set-output name=VERSION::${GITHUB_REF/refs\/tags\//}
- name: Create Release
id: create_release
uses: actions/create-release@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
tag_name: ${{ github.ref }}
release_name: Release ${{ github.ref }}
draft: false
prerelease: false
# linux
- uses: actions/upload-release-asset@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ steps.create_release.outputs.upload_url }} # This pulls from the CREATE RELEASE step above, referencing it's ID to get its outputs object, which include a `upload_url`. See this blog post for more info: https://jasonet.co/posts/new-features-of-github-actions/#passing-data-to-future-steps
asset_path: ./vermin-${{ steps.get_version.outputs.VERSION }}-linux.tar.gz
asset_name: vermin-${{ steps.get_version.outputs.VERSION }}-linux.tar.gz
asset_content_type: application/tar+gzip
- uses: actions/upload-release-asset@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ steps.create_release.outputs.upload_url }} # This pulls from the CREATE RELEASE step above, referencing it's ID to get its outputs object, which include a `upload_url`. See this blog post for more info: https://jasonet.co/posts/new-features-of-github-actions/#passing-data-to-future-steps
asset_path: ./vermin-${{ steps.get_version.outputs.VERSION }}-linux.tar.gz.sha256sum
asset_name: vermin-${{ steps.get_version.outputs.VERSION }}-linux.tar.gz.sha256sum
asset_content_type: text/plain
# darwin
- uses: actions/upload-release-asset@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ steps.create_release.outputs.upload_url }} # This pulls from the CREATE RELEASE step above, referencing it's ID to get its outputs object, which include a `upload_url`. See this blog post for more info: https://jasonet.co/posts/new-features-of-github-actions/#passing-data-to-future-steps
asset_path: ./vermin-${{ steps.get_version.outputs.VERSION }}-darwin.tar.gz
asset_name: vermin-${{ steps.get_version.outputs.VERSION }}-darwin.tar.gz
asset_content_type: application/tar+gzip
- uses: actions/upload-release-asset@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ steps.create_release.outputs.upload_url }} # This pulls from the CREATE RELEASE step above, referencing it's ID to get its outputs object, which include a `upload_url`. See this blog post for more info: https://jasonet.co/posts/new-features-of-github-actions/#passing-data-to-future-steps
asset_path: ./vermin-${{ steps.get_version.outputs.VERSION }}-darwin.tar.gz.sha256sum
asset_name: vermin-${{ steps.get_version.outputs.VERSION }}-darwin.tar.gz.sha256sum
asset_content_type: text/plain
# darwin
- uses: actions/upload-release-asset@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ steps.create_release.outputs.upload_url }} # This pulls from the CREATE RELEASE step above, referencing it's ID to get its outputs object, which include a `upload_url`. See this blog post for more info: https://jasonet.co/posts/new-features-of-github-actions/#passing-data-to-future-steps
asset_path: ./vermin-${{ steps.get_version.outputs.VERSION }}-windows.zip
asset_name: vermin-${{ steps.get_version.outputs.VERSION }}-windows.zip
asset_content_type: application/tar+gzip
- uses: actions/upload-release-asset@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ steps.create_release.outputs.upload_url }} # This pulls from the CREATE RELEASE step above, referencing it's ID to get its outputs object, which include a `upload_url`. See this blog post for more info: https://jasonet.co/posts/new-features-of-github-actions/#passing-data-to-future-steps
asset_path: ./vermin-${{ steps.get_version.outputs.VERSION }}-windows.zip.sha256sum
asset_name: vermin-${{ steps.get_version.outputs.VERSION }}-windows.zip.sha256sum
asset_content_type: text/plain