ci: Move from Travis to GitHub Actions (#308)
* Initial commit * trimpath error * Test * test priority * Another versiong * ON push only * Build also * Enable GO11MODULE * Disable trimpath * Separate jobs * Change stuff * Matrix build again * Remove mapping * Don't use script * Disable version temp * Restore * Deploy on master only * Deploy on master push * Remove unused code * Rename GitHub token secret The GITHUB_ prefix is reserved (see https://help.github.com/en/articles/virtual-environments-for-github-actions#naming-conventions) and I was not able to create a secret called GITHUB_TOKEN
This commit is contained in:
parent
6f24143015
commit
ee5d881ad3
|
@ -0,0 +1,58 @@
|
||||||
|
on: [push]
|
||||||
|
name: Test
|
||||||
|
jobs:
|
||||||
|
test:
|
||||||
|
strategy:
|
||||||
|
matrix:
|
||||||
|
go-version: [1.12.x, 1.13.x]
|
||||||
|
platform: [ubuntu-latest, macos-latest, windows-latest]
|
||||||
|
runs-on: ${{ matrix.platform }}
|
||||||
|
steps:
|
||||||
|
- name: Install Matrix Go
|
||||||
|
uses: actions/setup-go@v1
|
||||||
|
with:
|
||||||
|
go-version: ${{ matrix.go-version }}
|
||||||
|
- name: Checkout code
|
||||||
|
uses: actions/checkout@v1
|
||||||
|
- name: Test code
|
||||||
|
env:
|
||||||
|
GO111MODULE: on
|
||||||
|
run: |
|
||||||
|
go test ./pkg/...
|
||||||
|
go vet ./pkg/...
|
||||||
|
build:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
if: github.ref == 'refs/heads/master'
|
||||||
|
steps:
|
||||||
|
- name: Install Go 1.13.1
|
||||||
|
uses: actions/setup-go@v1
|
||||||
|
with:
|
||||||
|
go-version: '1.13.1'
|
||||||
|
- name: Checkout code
|
||||||
|
uses: actions/checkout@v1
|
||||||
|
- name: Build TUSD
|
||||||
|
env:
|
||||||
|
GO111MODULE: on
|
||||||
|
run: ./scripts/build_all.sh
|
||||||
|
- uses: azure/container-actions/docker-login@master
|
||||||
|
with:
|
||||||
|
username: ${{ secrets.DOCKER_USERNAME }}
|
||||||
|
password: ${{ secrets.DOCKER_PASSWORD }}
|
||||||
|
- name: Build and push docker image
|
||||||
|
run: |
|
||||||
|
docker build -t tusproject/tusd:$GITHUB_SHA .
|
||||||
|
docker push tusproject/tusd:$GITHUB_SHA
|
||||||
|
- name: Deploy to cluster
|
||||||
|
uses: steebchen/kubectl@master
|
||||||
|
env:
|
||||||
|
KUBE_CONFIG_DATA: |
|
||||||
|
${{ secrets.KUBECONFIG }}
|
||||||
|
with:
|
||||||
|
args: set image --record deployment/tusd tusd=tusproject/tusd:$GITHUB_SHA -n tus
|
||||||
|
- name: Release
|
||||||
|
uses: softprops/action-gh-release@v1
|
||||||
|
if: startsWith(github.ref, 'refs/tags/')
|
||||||
|
with:
|
||||||
|
files: tusd_*.*
|
||||||
|
env:
|
||||||
|
GITHUB_TOKEN: ${{ secrets.GH_RELEASE_TOKEN }}
|
44
.travis.yml
44
.travis.yml
|
@ -1,44 +0,0 @@
|
||||||
language: go
|
|
||||||
go:
|
|
||||||
- 1.12
|
|
||||||
- 1.13
|
|
||||||
env:
|
|
||||||
- GO111MODULE=on
|
|
||||||
os:
|
|
||||||
- linux
|
|
||||||
- windows
|
|
||||||
sudo: required
|
|
||||||
addons:
|
|
||||||
apt:
|
|
||||||
packages:
|
|
||||||
- docker-ce
|
|
||||||
cache:
|
|
||||||
apt: true
|
|
||||||
directories:
|
|
||||||
- $HOME/.gimme
|
|
||||||
- "$HOME/google-cloud-sdk/"
|
|
||||||
install:
|
|
||||||
- true
|
|
||||||
script:
|
|
||||||
- ./scripts/test_all.sh
|
|
||||||
before_deploy:
|
|
||||||
- if [[ "$TRAVIS_TAG" != "" ]]; then ./scripts/build_all.sh; fi
|
|
||||||
deploy:
|
|
||||||
- provider: releases
|
|
||||||
api_key:
|
|
||||||
secure: dV3wr9ebEps3YrzIoqmkYc7fw0IECz7QLPRENPSxTJyd5TTYXGsnTS26cMe2LdGwYrXw0njt2GGovMyBZFTtxyYI3mMO4AZRwvZfx/yGzPWJBbVi6NjZVRg/bpyK+mQJ5BUlkPAYJmRpdc6qD+nvCGakBOxoByC5XDK+yM+bKFs=
|
|
||||||
file_glob: true
|
|
||||||
file: tusd_*.*
|
|
||||||
skip_cleanup: true
|
|
||||||
on:
|
|
||||||
tags: true
|
|
||||||
go: 1.13
|
|
||||||
repo: tus/tusd
|
|
||||||
condition: $TRAVIS_OS_NAME = linux
|
|
||||||
- provider: script
|
|
||||||
script: scripts/deploy_kube.sh
|
|
||||||
on:
|
|
||||||
branch: master
|
|
||||||
go: 1.13
|
|
||||||
repo: tus/tusd
|
|
||||||
condition: $TRAVIS_OS_NAME = linux
|
|
14
appveyor.yml
14
appveyor.yml
|
@ -1,14 +0,0 @@
|
||||||
clone_folder: c:\projects\go\src\github.com\tus\tusd
|
|
||||||
|
|
||||||
environment:
|
|
||||||
GOPATH: c:\projects\go
|
|
||||||
GO111MODULE: on
|
|
||||||
|
|
||||||
build_script:
|
|
||||||
- set PATH=%GOPATH%\bin;%PATH%
|
|
||||||
- go env
|
|
||||||
- go version
|
|
||||||
|
|
||||||
test_script:
|
|
||||||
- go test ./pkg/...
|
|
||||||
- go vet ./pkg/...
|
|
|
@ -1,45 +0,0 @@
|
||||||
#!/usr/bin/env bash
|
|
||||||
set -o pipefail
|
|
||||||
set -o errexit
|
|
||||||
set -o nounset
|
|
||||||
# set -o xtrace
|
|
||||||
|
|
||||||
# Set magic variables for current FILE & DIR
|
|
||||||
__dir="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
||||||
__root="$(cd "$(dirname "${__dir}")" && pwd)"
|
|
||||||
|
|
||||||
curl -LO https://storage.googleapis.com/kubernetes-release/release/$(curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt)/bin/linux/amd64/kubectl
|
|
||||||
chmod +x ./kubectl
|
|
||||||
sudo mv ./kubectl /usr/local/bin/kubectl
|
|
||||||
|
|
||||||
#Store the new image in docker hub
|
|
||||||
docker build --quiet -t tusproject/tusd:latest -t tusproject/tusd:$TRAVIS_COMMIT ${__root};
|
|
||||||
docker login -u "$DOCKER_USERNAME" -p "$DOCKER_PASSWORD";
|
|
||||||
docker push tusproject/tusd:$TRAVIS_COMMIT;
|
|
||||||
docker push tusproject/tusd:latest;
|
|
||||||
|
|
||||||
|
|
||||||
echo "Create directory..."
|
|
||||||
mkdir ${HOME}/.kube
|
|
||||||
echo "Writing KUBECONFIG to file..."
|
|
||||||
echo $KUBECONFIGVAR | python -m base64 -d > ${HOME}/.kube/config
|
|
||||||
echo "KUBECONFIG file written"
|
|
||||||
|
|
||||||
sleep 10s # This cost me some precious debugging time.
|
|
||||||
kubectl apply -f "${__root}/infra/kube/tusd-kube.yaml"
|
|
||||||
|
|
||||||
|
|
||||||
kubectl set image deployment/tusd --namespace=tus tusd=docker.io/tusproject/tusd:$TRAVIS_COMMIT
|
|
||||||
|
|
||||||
kubectl get pods --namespace=tus
|
|
||||||
kubectl get service --namespace=tus
|
|
||||||
kubectl get deployment --namespace=tus
|
|
||||||
|
|
||||||
|
|
||||||
function cleanup {
|
|
||||||
printf "Cleaning up...\n"
|
|
||||||
rm -f ${HOME}/.kube/config
|
|
||||||
printf "Cleaning done."
|
|
||||||
}
|
|
||||||
|
|
||||||
trap cleanup EXIT
|
|
|
@ -1,6 +0,0 @@
|
||||||
#!/usr/bin/env bash
|
|
||||||
|
|
||||||
set -e
|
|
||||||
|
|
||||||
go test ./pkg/...
|
|
||||||
go vet ./pkg/...
|
|
Loading…
Reference in New Issue