Skip to content

Commit

Permalink
Migrate from Travis to GitHub Actions (pulumi#650)
Browse files Browse the repository at this point in the history
:# with '#' will be ignored, and an empty message aborts the commit.
  • Loading branch information
stack72 committed Apr 16, 2020
1 parent 7684c15 commit 9a29df0
Show file tree
Hide file tree
Showing 5 changed files with 144 additions and 96 deletions.
123 changes: 123 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,123 @@
name: Run Examples Tests
on:
push:
branches:
- master
pull_request:
branches:
- master
# schedule:
# # * is a special character in YAML so you have to quote this string.
# # Run every day at 09:00AM.
# - cron: '0 9 * * *'

env:
PULUMI_TEST_OWNER: ${{ secrets.PULUMI_TEST_OWNER }}
PULUMI_ACCESS_TOKEN: ${{ secrets.PULUMI_ACCESS_TOKEN }}
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
AWS_REGION: "us-west-2"
ARM_CLIENT_ID: ${{ secrets.ARM_CLIENT_ID }}
ARM_CLIENT_SECRET: ${{ secrets.ARM_CLIENT_SECRET }}
ARM_SUBSCRIPTION_ID: ${{ secrets.ARM_SUBSCRIPTION_ID }}
ARM_TENANT_ID: ${{ secrets.ARM_TENANT_ID }}
ARM_ENVIRONMENT: "public"
ARM_LOCATION: "westus"
DIGITALOCEAN_TOKEN: ${{ secrets.DIGITALOCEAN_TOKEN }}
CLOUDSDK_CORE_DISABLE_PROMPTS: 1
GOOGLE_CREDENTIALS: ${{ secrets.GCP_CREDENTIALS }}
GOOGLE_PROJECT: ${{ secrets.GCP_PROJECT_ID }}
GOOGLE_REGION: "us-central1"
GOOGLE_ZONE: "us-central1-a"
PACKET_AUTH_TOKEN: ${{ secrets.PACKET_AUTH_TOKEN }}
LINODE_API_TOKEN: ${{ secrets.LINODE_API_TOKEN }}
jobs:
released:
strategy:
matrix:
tests-set: ["DigitalOcean", "Aws", "Azure", "Gcp", "Packet", "Linode", "Cloud"]
platform: [ubuntu-latest]
go-version: [1.13.x]
node-version: [10.x]
python-version: [3.7]
dotnet-version: ['3.1.100']
runs-on: ${{ matrix.platform }}
steps:
- name: Install DotNet ${{ matrix.dotnet-version }}
uses: actions/setup-dotnet@v1
with:
dotnet-version: ${{ matrix.dotnet-version }}
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v1
with:
node-version: ${{ matrix.node-version }}
- name: Set up Go ${{ matrix.go-version }}
uses: actions/setup-go@v1
with:
go-version: ${{ matrix.go-version }}
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v1
with:
python-version: ${{ matrix.python-version }}
- name: Install Python Deps
run: |
pip3 install pipenv
- name: Install aws-iam-authenticator
run: |
curl -o aws-iam-authenticator https://amazon-eks.s3-us-west-2.amazonaws.com/1.13.7/2019-06-11/bin/linux/amd64/aws-iam-authenticator
chmod +x ./aws-iam-authenticator
sudo mv aws-iam-authenticator /usr/local/bin
- name: Install Kubectl
run: |
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
- uses: GoogleCloudPlatform/github-actions/setup-gcloud@master
with:
version: '285.0.0'
project_id: ${{ secrets.GCP_PROJECT_ID }}
service_account_email: ${{ secrets.GCP_SA_EMAIL }}
service_account_key: ${{ secrets.GCP_SA_KEY }}
- name: Install helm
run: |
curl -o- -L https://raw.githubusercontent.com/kubernetes/helm/master/scripts/get | bash
- name: Configure helm
run: |
helm init -c
helm repo add bitnami https://charts.bitnami.com/bitnami
- name: Set Azure DNS
run: |
echo "$(getent hosts $ARM_LOCATION.management.azure.com | awk '{ print $1 }') management.azure.com" | sudo tee --append /etc/hosts
- name: Login to Google Cloud Registry
run: |
gcloud --quiet auth configure-docker
- name: Install Pulumi CLI
uses: pulumi/action-install-pulumi-cli@releases/v1
- uses: actions/checkout@v2
- name: Install Go dependencies
run: make ensure
- name: Run ${{ matrix.tests-set }} Tests
run: make specific_test_set TestSet=${{ matrix.tests-set }}
lint:
strategy:
matrix:
platform: [ubuntu-latest]
yarn-version: [1.13.0]
node-version: [12.x]
runs-on: ${{ matrix.platform }}
steps:
- uses: actions/checkout@v2
- name: Setup node
uses: actions/setup-node@v1
with:
node-version: ${{ matrix.node-version }}
- name: Install Yarn
run: curl -o- -L https://yarnpkg.com/install.sh | bash -s -- --version ${{ matrix.yarn-version }}
- name: Update PATH for Yarn
run: |
echo "::add-path::$HOME/.yarn/bin"
echo "::add-path::$HOME/.config/yarn/global/node_modules/.bin"
- name: setup linting tool
run: make install
- name: Lint typescript files
run: make lint
36 changes: 17 additions & 19 deletions .travis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ git:
depth: false
cache:
directories:
- "$HOME/google-cloud-sdk/"
- "$HOME/google-cloud-sdk/"
before_install:
- openssl aes-256-cbc -K $encrypted_9f72dfef7328_key -iv $encrypted_9f72dfef7328_iv -in gcp-credentials.json.enc -out gcp-credentials.json -d
- git clone https://github.com/pulumi/scripts ${GOPATH}/src/github.com/pulumi/scripts
Expand All @@ -25,16 +25,16 @@ install:
- curl -o- -L https://raw.githubusercontent.com/kubernetes/helm/master/scripts/get | bash
- helm init -c
- helm repo add bitnami https://charts.bitnami.com/bitnami
# Install aws-iam-authenticator
# See: https://docs.aws.amazon.com/eks/latest/userguide/install-aws-iam-authenticator.html)
# Install aws-iam-authenticator
# See: https://docs.aws.amazon.com/eks/latest/userguide/install-aws-iam-authenticator.html)
- curl -o aws-iam-authenticator https://amazon-eks.s3-us-west-2.amazonaws.com/1.13.7/2019-06-11/bin/linux/amd64/aws-iam-authenticator
- chmod +x ./aws-iam-authenticator
- sudo mv aws-iam-authenticator /usr/local/bin
# Install kubectl
# Install kubectl
- 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
# Enable docker to access Google Cloud Registry
# Enable docker to access Google Cloud Registry
- cat gcp-credentials.json | docker login -u _json_key --password-stdin gcr.io
before_script:
- "${PULUMI_SCRIPTS}/ci/ensure-dependencies"
Expand All @@ -43,20 +43,18 @@ before_script:
- echo "$(getent hosts $ARM_LOCATION.management.azure.com | awk '{ print $1 }') management.azure.com" | sudo tee --append /etc/hosts
jobs:
include:
- script: make travis_${TRAVIS_EVENT_TYPE}
name: released
- script: "${GOPATH}/src/github.com/pulumi/scripts/ci/run-at-head"
name: latest-all
if: type = cron
- script: "${GOPATH}/src/github.com/pulumi/scripts/ci/run-at-head --no-latest-packages"
name: latest-cli
if: type = cron
- script: "${GOPATH}/src/github.com/pulumi/scripts/ci/run-at-head --no-latest-cli"
name: latest-packages
if: type = cron
- script: "${GOPATH}/src/github.com/pulumi/scripts/ci/run-at-head --version=feature-2.0"
name: feature-2.0
if: type = cron
- script: "${GOPATH}/src/github.com/pulumi/scripts/ci/run-at-head"
name: latest-all
if: type = cron
- script: "${GOPATH}/src/github.com/pulumi/scripts/ci/run-at-head --no-latest-packages"
name: latest-cli
if: type = cron
- script: "${GOPATH}/src/github.com/pulumi/scripts/ci/run-at-head --no-latest-cli"
name: latest-packages
if: type = cron
- script: "${GOPATH}/src/github.com/pulumi/scripts/ci/run-at-head --version=feature-2.0"
name: feature-2.0
if: type = cron
after_failure:
- "${PULUMI_SCRIPTS}/ci/upload-failed-tests"
notifications:
Expand Down
4 changes: 4 additions & 0 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,10 @@ lint:
only_test:
cd misc/test && go test ./... --timeout 4h -v -count=1 -short -parallel 40

specific_test_set:
echo "running $(TestSet) Acceptance Tests"
cd misc/test && go test ./... --timeout 4h -v -count=1 -short -parallel 40 --run=TestAcc$(TestSet)

# The travis_* targets are entrypoints for CI.
.PHONY: travis_cron travis_push travis_pull_request travis_api
travis_cron: all
Expand Down
7 changes: 0 additions & 7 deletions misc/travis/README.md

This file was deleted.

70 changes: 0 additions & 70 deletions misc/travis/update-stack.sh

This file was deleted.

0 comments on commit 9a29df0

Please sign in to comment.