Skip to content

Commit

Permalink
Merge pull request #5 from actlaboratory/github_actions
Browse files Browse the repository at this point in the history
Github actions対応
  • Loading branch information
yamahubuki committed Feb 12, 2024
2 parents 5a1ffba + 71190e1 commit 979fba1
Show file tree
Hide file tree
Showing 5 changed files with 348 additions and 138 deletions.
29 changes: 29 additions & 0 deletions .github/workflows/pullRequest.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
name: check for pull request into master

on:
pull_request:
branches:
- master

jobs:
build:
runs-on: windows-latest

steps:
- name: Check out repository
uses: actions/checkout@v4

- name: Set up Python
uses: actions/setup-python@v5
with:
architecture: x86
python-version: 3.8
cache: pip

- name: Install requirements
run: |
python -m pip install -r requirements.txt
- name: run scons
run: scons

50 changes: 50 additions & 0 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
name: Build and release for official

on:
push:
tags:
- "*.*.*"

jobs:
build:
uses: ./.github/workflows/testAndBuild.yml
with:
official_release: true

deploy:
needs: build
runs-on: windows-latest

steps:
- name: Download artifact
uses: actions/download-artifact@v4
with:
name: ${{ github.event.repository.name }}
path: ./

- name: Deploy to GitHub
uses: softprops/action-gh-release@v1
with:
body: ${{ github.event.repository.name }} official release
draft: true
files: |
./${{ github.event.repository.name }}-*.zip
./*-*.nvda-addon
./${{ github.event.repository.name }}-*.json
error_notify:
runs-on: ubuntu-latest
needs: deploy
if: ${{ failure() }}
steps:
- name: Send GitHub Action trigger data to Slack workflow
uses: slackapi/slack-github-action@v1
with:
payload: |
{
"text": "Github actions build failed! <${{ github.server_url }}/${{ github.repository }}|${{ github.event.repository.name }}>のofficial releaseビルドが失敗しました。\n<${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}|対象のrun>お確認し、対応着手時・完了後は、本チャンネルにて経緯を報告ください。"
}
env:
SLACK_WEBHOOK_URL: ${{ secrets.SLACK_ALERT_WEBHOOK_URL }}
SLACK_WEBHOOK_TYPE: INCOMING_WEBHOOK

84 changes: 84 additions & 0 deletions .github/workflows/snapshot.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,84 @@
name: Build and release for snapshot

on:
push:
branches:
- master

jobs:
build:
uses: ./.github/workflows/testAndBuild.yml

deploy:
needs: build
runs-on: windows-latest

steps:
- name: Download artifact
uses: actions/download-artifact@v4
with:
name: ${{ github.event.repository.name }}
path: ./

- name: Re-create the tag
uses: actions/github-script@v7
with:
script: |
const { owner, repo } = context.repo
const tagName = repo + "-latestcommit"
try {
// Fetch the release by its tag
const { data: release } = await github.rest.repos.getReleaseByTag({ owner, repo, tag: tagName })
// Delete the release if exists
await github.rest.repos.deleteRelease({ owner, repo, release_id: release.id })
console.log("deleted release");
} catch(err) {
if(err.status !== 404){
throw err;
}
console.log('No release found for deletion');
}
try {
await github.rest.git.deleteRef({owner, repo, ref: "tags/" + tagName})
console.log("deleted tag");
} catch(err) {
console.log('Failed to delete tag'+err.message);
}
try {
await github.rest.git.createRef({owner, repo, ref: "refs/tags/" + tagName, sha: context.sha})
console.log("created tag");
} catch(err) {
console.log('Failed to create tag'+err.message);
}
- name: Deploy to GitHub
uses: softprops/action-gh-release@v1
with:
name: Snapshot
tag_name: ${{ github.event.repository.name }}-latestcommit
body: Automatic build from master branch
files: |
./${{ github.event.repository.name }}-*.zip
./*-*.nvda-addon
./${{ github.event.repository.name }}-*.json
- name: register snapshot to actlab site
run: |
curl "https://actlab.org/api/addAlphaVersion?repo_name=${{ github.repository }}&commit_hash=${{ github.sha }}&version=${{ needs.build.outputs.build_version }}&password=${{ secrets.SCRIPT_PASSWORD }}"
error_notify:
runs-on: ubuntu-latest
needs: deploy
if: ${{ failure() }}
steps:
- name: Send GitHub Action trigger data to Slack workflow
uses: slackapi/slack-github-action@v1
with:
payload: |
{
"text": "Github actions build failed! <${{ github.server_url }}/${{ github.repository }}|${{ github.event.repository.name }}>のビルドが失敗しました。\n<${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}|対象のrun>お確認し、対応着手時・完了後は、本チャンネルにて経緯を報告ください。"
}
env:
SLACK_WEBHOOK_URL: ${{ secrets.SLACK_ALERT_WEBHOOK_URL }}
SLACK_WEBHOOK_TYPE: INCOMING_WEBHOOK

68 changes: 68 additions & 0 deletions .github/workflows/testAndBuild.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,68 @@
name: Test and build

on:
workflow_call:
inputs:
official_release:
description: Whether this is an official release
default: false
type: boolean
outputs:
build_version:
description: Version of the built package
value: ${{ jobs.build.outputs.build_version }}

jobs:
build:
runs-on: windows-latest
outputs:
build_version: ${{ steps.output_version.outputs.version }}

steps:
- name: Check out repository
uses: actions/checkout@v4

- name: Set up Python
uses: actions/setup-python@v5
with:
architecture: x86
python-version: 3.8
cache: pip

- name: Install requirements
run: |
python -m pip install -r requirements.txt
- name: Test
run: |
echo no tests
- name: Set tag name if This is an official release
run: echo "TAG_NAME=$($env:GITHUB_REF.Replace('refs/tags/', ''))" >> $env:GITHUB_ENV
if: ${{ inputs.official_release }}

- name: Build
run: |
python tools\build.py
env:
COMMIT_TIMESTAMP: ${{ github.event.head_commit.timestamp}}

- name: output version
id: output_version
shell: python
run: |
import os, sys
sys.path.append(os.getcwd())
import buildVars
with open(os.environ["GITHUB_OUTPUT"], mode = "a") as f:
f.write("version="+buildVars.ADDON_VERSION)
- name: Archive production artifacts
uses: actions/upload-artifact@v4
with:
name: ${{ github.event.repository.name }}
path: |
./${{ github.event.repository.name }}-*.zip
./*-*.nvda-addon
./${{ github.event.repository.name }}-*.json
Loading

0 comments on commit 979fba1

Please sign in to comment.