Skip to content

release v0.27.0

release v0.27.0 #44

Workflow file for this run

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@v4
with:
go-version: stable
id: go
- name: Check out code into the Go module directory
uses: actions/checkout@v3
- name: Setup
if: runner.os == 'Linux'
run: docker-compose up -d mysql
- name: Short Tests
if: runner.os == 'Linux'
env:
GOTEST_FLAGS: "-short"
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@v3
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@v4
with:
go-version: stable
id: go
- name: Setup Node / NPM
uses: actions/setup-node@v3
with:
node-version: '20'
- name: Check out code into the Go module directory
uses: actions/checkout@v3
- 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/watchman-linux-amd64
asset_name: watchman-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/watchman-darwin-amd64
asset_name: watchman-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/watchman.exe
asset_name: watchman.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@v4
with:
go-version: stable
id: go
- name: Check out code into the Go module directory
uses: actions/checkout@v3
- name: Clean
run: make clean
- name: Docker Hub
run: make docker-hub
- name: Docker Openshift
run: make docker-openshift
- name: Docker Static
run: make docker-static
- name: Docker watchmantest
run: make docker-watchmantest
- 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 }}