Skip to content

Commit

Permalink
build: release via Actions
Browse files Browse the repository at this point in the history
  • Loading branch information
adamdecaf committed Jul 7, 2020
1 parent dbfa196 commit 03d7db6
Show file tree
Hide file tree
Showing 3 changed files with 154 additions and 33 deletions.
150 changes: 150 additions & 0 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,150 @@
name: Create Release

on:
push:
tags: [ "v*.*.*" ]

jobs:
testing:
name: Testing
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ubuntu-latest, macos-latest, windows-latest]
steps:
- name: Set up Go 1.x
uses: actions/setup-go@v2
with:
go-version: ^1.14
id: go

- name: Check out code into the Go module directory
uses: actions/checkout@v2

- name: Check
run: make check

create_release:
name: Create Release
needs: [testing]
runs-on: ubuntu-latest
steps:
- 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 }}
prerelease: true

- name: Output Release URL File
run: echo "${{ steps.create_release.outputs.upload_url }}" > release_url.txt

- name: Save Release URL File for publish
uses: actions/upload-artifact@v1
with:
name: release_url
path: release_url.txt

publish:
name: Publish
needs: [testing, create_release]
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ubuntu-latest, macos-latest, windows-latest]
steps:
- name: Set up Go 1.x
uses: actions/setup-go@v2
with:
go-version: ^1.14
id: go

- name: Check out code into the Go module directory
uses: actions/checkout@v2

- name: Load Release URL File from release job
uses: actions/download-artifact@v1
with:
name: release_url

- name: Distribute
run: make dist

- name: Get Release File Name & Upload URL
id: get_release_info
shell: bash
run: |
value=`cat release_url/release_url.txt`
echo ::set-output name=upload_url::$value
env:
TAG_REF_NAME: ${{ github.ref }}
REPOSITORY_NAME: ${{ github.repository }}

- name: Upload Linux Binary
if: runner.os == 'Linux'
uses: actions/upload-release-asset@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ steps.get_release_info.outputs.upload_url }}
asset_path: ./bin/wire-linux-amd64
asset_name: wire-linux-amd64
asset_content_type: application/octet-stream

- name: Upload macOS Binary
if: runner.os == 'macOS'
uses: actions/upload-release-asset@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ steps.get_release_info.outputs.upload_url }}
asset_path: ./bin/wire-darwin-amd64
asset_name: wire-darwin-amd64
asset_content_type: application/octet-stream

- name: Upload Windows Binary
if: runner.os == 'Windows'
uses: actions/upload-release-asset@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ steps.get_release_info.outputs.upload_url }}
asset_path: ./bin/wire.exe
asset_name: wire.exe
asset_content_type: application/octet-stream

docker:
name: Docker
needs: [testing, create_release]
runs-on: ubuntu-latest
steps:
- name: Set up Go 1.x
uses: actions/setup-go@v2
with:
go-version: ^1.14
id: go

- name: Check out code into the Go module directory
uses: actions/checkout@v2

- name: Docker
run: make docker

- name: Docker Push
run: |+
echo "$DOCKER_PASSWORD" | docker login -u "$DOCKER_USERNAME" --password-stdin
make release-push
env:
DOCKER_USERNAME: ${{ secrets.DOCKER_USERNAME }}
DOCKER_PASSWORD: ${{ secrets.DOCKER_PASSWORD }}

- name: Quay.io Push
run: |+
echo "$DOCKER_PASSWORD" | docker login -u "$DOCKER_USERNAME" --password-stdin quay.io
make quay-push
env:
DOCKER_USERNAME: ${{ secrets.QUAY_USERNAME }}
DOCKER_PASSWORD: ${{ secrets.QUAY_PASSWORD }}
33 changes: 0 additions & 33 deletions .travis.yml

This file was deleted.

4 changes: 4 additions & 0 deletions makefile
Original file line number Diff line number Diff line change
Expand Up @@ -67,6 +67,10 @@ release-push:
docker push moov/wire:latest
docker push moov/wirefuzz:$(VERSION)

quay-push:
docker push quay.io/moov/wire:$(VERSION)
docker push quay.io/moov/wire:latest

.PHONY: cover-test cover-web
cover-test:
go test -coverprofile=cover.out ./...
Expand Down

0 comments on commit 03d7db6

Please sign in to comment.